Sorry for the typo, Jaroslav. 2010/11/6 Mario M <maqueo.ma...@gmail.com>
> Hello, > thanks for the info about the underscores : ), now I learned something > interesting. > > I ended up downloading the source and MSYS and compiling GTK+ in my 64 bit > system. It was a long and tedious process :P getting all the dependencies, > setting up environment variables... also I had to install PERL because some > part of the compilation needed it, but... > > In the end compiling it worked and my linker now recognized it and I didn't > have underscores problems anymore :) > > However, I found that it didn't solve the vertex problem. I was so > frustrated that I ended up compiling WxWindows and trying to learn how to > use it (which has been a bit complicated because I don't have too much time > left for this project), but when I built the app using WxWindows, I had the > same problem! > > Here is a more detailed description of this problem: > I have a class that stores values read from files in float arrays. I have > another class that uses the previous one, and this latter class is used in > the main file, in the GTK+ functions. > > In my laptop with a 32 bit system, everything is cool. It works as > expected. > In my 64 bit machine (and another 64 bit machine), the array values are > messed up. If I initialize the arrays to some arbitrary number, that will be > the final value of the arrays when I call them. However, if I directly > called the first class from the main.cpp file without using the second > class, it works! > > I built a test program that uses those classes the same way, without using > GTK+ (using GLUT for window creation), it works without a problem! > > After discovering that WxWindows didn't solve the problem, I set up various > tests, and in the end found out the source of the problem. In the class that > reads from files, I was using cstdio functions (fscanf mainly). I found out > than when called from GTK+ with the intermediary class, the fscanf calls > would read the strings but not the floats, the values stored in the passed > variables would stay the same as before the call. (these values are vertex > positions) > > I solved this issue changing all the csdtio calls to c++ calls ( from the > ifstream library e.g. ifstream fin("file"); fin>>floatVar; ). With the c++ > calls the values were adecuately read and stored. There is a side problem, > now the reading process is significantly slower and I have to wait several > seconds for the program to read the files. > > I am utterly perplexed by this, any insight is welcome : ) > > Thanks again for your time, and thanks Jaroslay for answering my first > e-mail. > > Mario Maqueo > > 2010/11/2 Jaroslav Šmíd <jardas...@gmail.com> > > Mingw64 defaults to no leading underscores (this is quite new >> feature), make sure GTK+ libraries are compiled by mingw64 version >> built after this was done. If you use newer mingw64 and older GTK+ or >> vice versa - trouble ahead :-) >> >> >> On Tue, Nov 2, 2010 at 9:03 AM, Mario M <maqueo.ma...@gmail.com> wrote: >> > Hello, I have Windows 7 64 bits and I am working on a GTK+ project that >> uses >> > OpenGL in C++. I am using GLADE and the normal version of GTK+ (not >> gtkmm). >> > >> > I was working on a laptop with Windows 7 32 bits and the program worked >> > fine, but the video card in that laptop was really bad (Intel, >> integrated) >> > so I switched to a desktop with 64 bit windows and a better video card >> > (Nvidia GT 240). >> > >> > The code compiles fine in both versions of windows, using the 32 bit >> version >> > of gtk. However, some horrible things have been happening: >> > >> > - The OpenGL window would not update correctly, taking a long time to do >> so, >> > seemingly at random times. I was using gtkglext for the OpenGL binding >> but >> > I found out this problem was caused by gtkglext not being updated (since >> > 2006) and the problem is with Aero in Windows, If desktop compositing >> was >> > disabled, it would work fine. I decided to ditch gtkglext and use OpenGL >> > directly, after a while I managed to and this problem was fixed. >> > >> > - Some colors were messed up with lighting enabled, at first I thought >> this >> > and the previous problem had to do with the video card, but this was >> weird >> > because the same program without gtk would work fine. However I managed >> to >> > correct it adding a few simple OpenGL instructions. I'm not sure why it >> > worked fine without GTK+, but it seems to work fine now with my fix. >> > >> > - I have a library for loading 3d models, in my laptop it worked fine, >> but >> > on the new computer (and another one where i tested it), the 3d models >> > render as a single horizontal :S, all of them. They are drawn using >> openGL >> > functions and storing the vertex positions in lists. I discovered this: >> When >> > I load an object in the main.cpp file, and draw it, it works fine, >> however, >> > when I load it in an external file, and draw it, it doesn't work ( I get >> > just a horizontal line, and again, without gtk+ it works fine). This has >> me >> > really perplexed, I think it might have something to do with the linker >> but >> > I have no idea how. I added some debugging and I think the problem is in >> the >> > vertex positions, I printed their x,y,z values and they seemed to have x >> > position in -1,0,1 and the y and z positions were values like 3.43e-039, >> I >> > think the pointers might be messed up but I don't know how to fix them >> :S. I >> > manually drew a triangle in the file that draws the 3d models, and the >> > triangle rendered fine. I >> > >> > I thought this might somehow have something to do with using a 32 bit >> > version of gtk+, do you think that is the case? >> > I downloaded the 64 bit binaries, and tried to compile my code, but the >> > linker didn't find any function! As soon as I changed the library >> location >> > to point to the 64 bit version, I got a load of "undefined reference"s >> for >> > everything concerning gtk+, even if I manually added the libraries in >> the >> > project configuration of my IDE it would say the same. >> > >> > I am using Code::Blocks as an IDE and MingW as the compiler. >> > >> > Do I need to change additional configuration to use the 64 bit version >> of >> > gtk+? Please help me, I haven't slept in two days trying to solve this >> and I >> > am still confused. I downloaded the latest 64 bit version and then an >> older >> > one to see if it was broken, but the results were the same. >> > >> > Or is the problem not related to the 64 bit thing? Any ideas/thoughts >> are >> > welcome. >> > >> > Thanks in advance for your time. >> > >> > Mario Maqueo >> > _______________________________________________ >> > gtk-app-devel-list mailing list >> > gtk-app-devel-list@gnome.org >> > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >> > >> >> >> >> -- >> Jaroslav Šmíd >> > > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list