Can you provide example code (the one which uses GTK+)? I'm not quite
sure if I understand what you mean. By "called in GTK+ functions" you
mean in callbacks? Does that work if you use glib only?

On Sat, Nov 6, 2010 at 7:25 PM, Mario M <maqueo.ma...@gmail.com> wrote:
> 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



-- 
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

Reply via email to