Я работаю над 2D-игровым проектом, и я хотел бы обернуть текстуру openGl в простой класс. Текстура считывается из 128x128px .png (с альфа-каналом) с использованием libpng. Поскольку количество кода довольно велико, я использую pastebin.OpenGL 2d не работает
Кодовые файлы:
- текстуры класса: http://pastebin.com/gbGMEF2Z
- PngReader класс: http://pastebin.com/h6uP5Uc8 (кажется, работает хорошо, так что я удалил описание).
- OpenGl код: http://pastebin.com/PVhwnDif
Чтобы не тратить свое время, я объясню код немного:
текстуры класса: обертку для OpenGL, текстуры. Функция
loadData
устанавливает текстуру в gl (это функция, которую я подозреваю, что она не работает).код OpenGl: функция
debugSetTexture
помещает текстуру вtemp
переменной, которая используется в функцииgraphicsDraw()
. Это связано с тем, что он не находится в том же исходном файле, что иmain()
. В функцииgraphicsMainLoop()
я использую функциюFork()
, которая на самом деле вызываетfork()
, и сохраняетpid
порожденного процесса.
От main()
, это то, что я делаю:
Strategy::IO::PngReader reader ("/cygdrive/c/Users/Tibi/Desktop/128x128.png");
reader.read();
grahpicsInit2D(&argc, argv);
debugSetTexture(reader.generateTexture());
graphicsMainLoop();
reader.close();
Я попробовал приложение под названием gDEBugger, и в средстве просмотра текстур, была текстура генерируется, но размер был 0x0px.
Я подозреваю, что проблема возникает, когда текстура загружается с использованием Texture :: loadTexture().
Почему вы используете Cygwin? И запускаете ли вы программу в среде Cygwin? – AndiDog
«Я подозреваю, что функция Texture :: loadData() не работает» ... так вы пытались сделать то же самое на одних и тех же данных в минимальном примере за пределами класса Texture? Это работает? – Bart
@AndiDog Это способ настройки Eclipse ... У меня нет установленного mingw, и я не уверен, что libpng существует в Windows. – Tibi