[squeak-dev] OGLUnixX11LE >> glPixelStorei: with:

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Mon May 11 07:38:57 UTC 2020


Le lun. 11 mai 2020 à 02:04, Vanessa Freudenberg <vanessa at codefrau.net> a
écrit :

> Oh, and regarding 'linux' vs 'linux-gnu': I don't know which VM started
> that. I'm pretty certain the interpreter VM used 'linux' because that did
> indeed work when I wrote the original B3DAcceleratorPlugin for X11. That is
> the plugin that creates the OpenGL context for the Squeak window, whereas
> the actual OpenGL calls are handled via FFI.
>
> Maybe make the test read (Smalltalk osVersion beginsWith: 'linux'). And
> maybe also file a bug report with the VM authorities to drop the "-gnu".
>
> +1

non-gnu would be a double negation, which is bad ;)

- Vanessa -
>
> On Sun, May 10, 2020 at 4:50 PM Vanessa Freudenberg <vanessa at codefrau.net>
> wrote:
>
>> Hi Tom,
>>
>> the OGLUnix class is used for all Unixen, and  'GL' is a good default for
>> that. We simply special-case Linux.
>>
>> This could be highlighted by rewriting it as
>>
>>     openGLLibraryName
>>         Smalltalk osVersion = 'linux' ifTrue: [^'libGL.so.1'].
>>         ^'GL'
>>
>> If someone knows the specific conventions on the BSDs or Solaris or
>> whatever, we can add special-cases for them, too, if needed.
>>
>> - Vanessa -
>>
>> On Sat, May 9, 2020 at 11:17 PM Beckmann, Tom <
>> Tom.Beckmann at student.hpi.uni-potsdam.de> wrote:
>>
>>> Hi Vanessa,
>>>
>>> thank you for clarifying! Do you know if there's any reason to keep the
>>> conditional asking for the osVersion to either return 'GL' or 'libgl.so.1'?
>>> In its current state it is broken on most linux systems I tested on (mainly
>>> Ubuntu-based), but I was wondering whether the correct fix would be to
>>> adapt it to the correct matching string 'linux-gnu' or just have it return
>>> 'libgl.so.1' always.
>>>
>>> Best,
>>> Tom
>>> ________________________________________
>>> From: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> on
>>> behalf of Vanessa Freudenberg <vanessa at codefrau.net>
>>> Sent: Sunday, May 10, 2020 3:19:00 AM
>>> To: The general-purpose Squeak developers list
>>> Subject: Re: [squeak-dev] OGLUnixX11LE >> glPixelStorei: with:
>>>
>>> On Sat, May 9, 2020 at 12:05 AM Beckmann, Tom <
>>> Tom.Beckmann at student.hpi.uni-potsdam.de<mailto:
>>> Tom.Beckmann at student.hpi.uni-potsdam.de>> wrote:
>>> Hi there!
>>>
>>> Replacing the whole #openGLLibraryName method with a simple
>>> ^ 'GL'
>>> should work, as long as you adapt your LD_LIBRARY_PATH to include the
>>> arch specific libraries. For example adding
>>> export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/"
>>> in your squeak.sh before the vm gets started should make sure that the
>>> image finds libgl*. Of course, if your libgl.so.1 is not found under that
>>> path, adjust accordingly.
>>>
>>> Alternatively, you can also specify the absolute path to the library,
>>> e.g.
>>> ^ '/usr/lib/x86_64-linux-gnu/libGL.so'
>>> which may be a safer option to start from if you're having troubles
>>> getting it to run.
>>>
>>> 'libGL.so' typically is installed by the opengl dev package as a symlink
>>> to 'libGL.so.1'. The user package installs 'libGL.so.1' and will *not* be
>>> found by the VM if you just specify 'GL' because the VM will only
>>> automatically try the '.so' suffix but not '.so.1'.
>>>
>>> That is why 'libGL.so.1' is indeed the correct value to be returned from
>>> openGLLibraryName on Linux.
>>>
>>> For the apicall:'s, if you inspect the byte codes of the method, you
>>> will in fact notice that is has already been replaced for you. This happens
>>> in OpenGL>>#privateInstallLibrary:, but only updates the method's bytecode,
>>> not its source code (which is good, because otherwise this would end up in
>>> commits or your changes file).
>>>
>>> Yep. As Levente mentioned, you need to switch your browser to show
>>> decompiled code to see the actual methods being executed.
>>>
>>> You will also see that apicall has been replaced by cdecl which is the
>>> right calling convention on Linux.
>>>
>>> - Vanessa -
>>>
>>>
>>> Best,
>>> Tom
>>>
>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200511/dba2b17e/attachment.html>


More information about the Squeak-dev mailing list