Sign up

Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

I'm working on a D application that also targets Windows and it requires OpenGL, this just came to my attention with the release 0.17beta1 of LDC as LDC/Win is now working again for me and is very desirable being a much better optimizer than DMD. However LDC currently doesn't build 32 bit apps under Windows. This led me to find out I lacked 64 bit DLLs of them and both runtimes offered for download on your website (32 and 64bit) are lacking these files and therefore can't run Windows GTK apps that use OpenGL widgets.

I really do not remember how I came to have the 32 bit DLLs which kept me going so far with DMD however now I can't use them for LDC for the reason above. I scoured the web and all precompiled Gtk Windows runtimes I found also lacked those files. That therefore is an impediment to everyone that tries to build Gtk apps in Windows using OpenGL, 32 or 64 bits.

I did go as far as downloading the sources to that library in an attempt to create the DLLs myself but I was not successful after several hours invested. Surely if someone already familiar with that build process could produce them it would help many more people.

Or if someone knows of a Gtk 64 bit DLL runtime that includes them, I would be thankful also.

Re: Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

On 01/19/2016 05:16 PM, Chris wrote:

I'm working on a D application that also targets Windows and it requires OpenGL, this just came to my attention with the release 0.17beta1 of LDC as LDC/Win is now working again for me and is very desirable being a much better optimizer than DMD. However LDC currently doesn't build 32 bit apps under Windows. This led me to find out I lacked 64 bit DLLs of them and both runtimes offered for download on your website (32 and 64bit) are lacking these files and therefore can't run Windows GTK apps that use OpenGL widgets.

I really do not remember how I came to have the 32 bit DLLs which kept me going so far with DMD however now I can't use them for LDC for the reason above. I scoured the web and all precompiled Gtk Windows runtimes I found also lacked those files. That therefore is an impediment to everyone that tries to build Gtk apps in Windows using OpenGL, 32 or 64 bits.

I did go as far as downloading the sources to that library in an attempt to create the DLLs myself but I was not successful after several hours invested. Surely if someone already familiar with that build process could produce them it would help many more people.

Or if someone knows of a Gtk 64 bit DLL runtime that includes them, I would be thankful also.

If it's an new application i would advise to use gtk.GLArea, i assume
that is not the case.

I used to compile the gtkglext libraries myself and the old Gtk runtime
installers include them, I will have to check if it still compiles with
the latest gtk.

I the meantime if you are not using any of the newer features, you can
use the old version from here:
http://sourceforge.net/projects/gtkd-packages/files/gtk3-runtime/

Re: Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

On Tue, 19 Jan 2016 19:27:38 +0100, Mike Wey wrote:

If it's an new application i would advise to use gtk.GLArea, i assume
that is not the case.

Hello, thanks for the pointer. I wasn't aware of GLArea, BTW it's missing in the online GktD documentation.

So I thought I could spend a couple hours getting my program to work using GLArea instead of the gtkgld library, and with DMD/32bit it "works" except showing black instead of drawing what it was supposed to. However with LDC/64bit I get an exception stating "The function you are calling is not pressent (sic) in your version of GTK+" upon my GLArea-derived object's constructor calling setAutoRender which left me scratching my head -- this was using the 3.18.3 runtime.

If I comment out setAutoRender I get the message again on the next method over, addEvents. So I gave up on that for now.

I used to compile the gtkglext libraries myself and the old Gtk runtime
installers include them, I will have to check if it still compiles with
the latest gtk.

I the meantime if you are not using any of the newer features, you can
use the old version from here:
http://sourceforge.net/projects/gtkd-packages/files/gtk3-runtime/

Indeed I found the DLLs with the 3.10 runtime. However when I compiled my program with it (the original version, using gtkgld) I get the message - "The function you are calling is not pressent (sic) in your version of GTK+". This is produced when calling the addFromFile method on a Builder object.

I thought I might get around it by installing the latest 64bit 3.18 runtime and copying the 3.10 missing DLLs over but still the same error remained.

I'm a wit's end again, thanks for the help so far though. Maybe I still can figure this out.

Re: Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

On 01/20/2016 12:53 AM, Chris wrote:

On Tue, 19 Jan 2016 19:27:38 +0100, Mike Wey wrote:

If it's an new application i would advise to use gtk.GLArea, i assume
that is not the case.

Hello, thanks for the pointer. I wasn't aware of GLArea, BTW it's missing in the online GktD documentation.

So I thought I could spend a couple hours getting my program to work using GLArea instead of the gtkgld library, and with DMD/32bit it "works" except showing black instead of drawing what it was supposed to. However with LDC/64bit I get an exception stating "The function you are calling is not pressent (sic) in your version of GTK+" upon my GLArea-derived object's constructor calling setAutoRender which left me scratching my head -- this was using the 3.18.3 runtime.

If I comment out setAutoRender I get the message again on the next method over, addEvents. So I gave up on that for now.

I used to compile the gtkglext libraries myself and the old Gtk runtime
installers include them, I will have to check if it still compiles with
the latest gtk.

I the meantime if you are not using any of the newer features, you can
use the old version from here:
http://sourceforge.net/projects/gtkd-packages/files/gtk3-runtime/

Indeed I found the DLLs with the 3.10 runtime. However when I compiled my program with it (the original version, using gtkgld) I get the message - "The function you are calling is not pressent (sic) in your version of GTK+". This is produced when calling the addFromFile method on a Builder object.

I thought I might get around it by installing the latest 64bit 3.18 runtime and copying the 3.10 missing DLLs over but still the same error remained.

I'm a wit's end again, thanks for the help so far though. Maybe I still can figure this out.

Sorry for the late reply.

The "The function you are calling is not pressent (sic) in your version
of GTK+" could be caused by GtkD picking up an older version of GTK+
when there are other copies installed.

I also haven't yet succeeded in compiling gtkglext with 3.18.

Re: Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

On Sun, 24 Jan 2016 22:50:42 +0100, Mike Wey wrote:

Sorry for the late reply.

The "The function you are calling is not pressent (sic) in your version
of GTK+" could be caused by GtkD picking up an older version of GTK+
when there are other copies installed.

I also haven't yet succeeded in compiling gtkglext with 3.18.

Hello I appreciate you did not forget about me, I did purge all GTK dlls from my system except the set I left in the program directory and I still get the same error, anything else I could try?

Thanks.

Re: Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

On 01/28/2016 12:38 AM, Chris wrote:

Hello I appreciate you did not forget about me, I did purge all GTK dlls from my system except the set I left in the program directory and I still get the same error, anything else I could try?

Thanks.

Could you run the following application and post the output here?

import std.stdio;

import gtkc.Loader;
import gtk.Version;

void main()
{
	writefln("Gtk version: %s.%s.%s",
		Version.getMajorVersion(), Version.getMinorVersion(), 
Version.getMicroVersion());

	Linker.dumpLoadLibraries();

	Linker.dumpFailedLoads();
}

Re: Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

On Thu, 28 Jan 2016 22:24:00 +0100, Mike Wey wrote:

Could you run the following application and post the output here?

I took a screenshot: http://i.imgur.com/E1LLgDU.png

That was inserted into my program, with the small modification required for LDC for the WinMain function, therefore maintaining the same build environment, paths, etc, as I ordinarily use, I didn't even exclude the rest of the sources.

The exception is generated inside the writefln call, if I comment that out then I still get the same error, apparently the dump function also calls wrtiefln and runs into the issue again: http://i.imgur.com/jIEPbhH.png I would try to fix that to get a usable dump but I really have no clue what the problem with writefln is and google didn't yield a solution.

I had the same results with LDC and DMD, 32 or 64 bit. I'm using the DLLs from the 3.10.6 distribution.

Now the good news for me is that a new beta of LDC was released which now includes support for creating Win32 binaries and it works for me. Eventually I should relearn OpenGL to stop using the deprecated API so I can use GLArea and then libglext stops being an issue. But for the time being I'm very happy, LDC/32 is working fine, I don't have a need for 64 bit so I'm just going to stick to that.

Thank you very much for your time.

Re: Could we get libgtkglext.dll + libgdkglext.dll added to the gtk windows runtime distributions?

On 01/29/2016 04:23 AM, Chris wrote:

On Thu, 28 Jan 2016 22:24:00 +0100, Mike Wey wrote:

Could you run the following application and post the output here?

I took a screenshot: http://i.imgur.com/E1LLgDU.png

That was inserted into my program, with the small modification required for LDC for the WinMain function, therefore maintaining the same build environment, paths, etc, as I ordinarily use, I didn't even exclude the rest of the sources.

The exception is generated inside the writefln call, if I comment that out then I still get the same error, apparently the dump function also calls wrtiefln and runs into the issue again: http://i.imgur.com/jIEPbhH.png I would try to fix that to get a usable dump but I really have no clue what the problem with writefln is and google didn't yield a solution.

I had the same results with LDC and DMD, 32 or 64 bit. I'm using the DLLs from the 3.10.6 distribution.

Now the good news for me is that a new beta of LDC was released which now includes support for creating Win32 binaries and it works for me. Eventually I should relearn OpenGL to stop using the deprecated API so I can use GLArea and then libglext stops being an issue. But for the time being I'm very happy, LDC/32 is working fine, I don't have a need for 64 bit so I'm just going to stick to that.

Thank you very much for your time.

Could you try it without winmain? You are currently getting an exception
because stdout isn't connected.