TinyGL

Discussing libraries simplifying applications development
  • Из хаоса в космос
  • Прочитал по ссылке http://forum.cantorsys.com/viewtopic.php?id=143 ,
    0CodErr wrote:Ещё есть проблема при выводе изображения в окно: координаты нижнего и правого края изображения при изменении размеров окна меняются на несколько пикселей как-то сами по себе, больше похоже на баг в библиотеке.
    В библиотеке TinyGL (на C++) изменение размеров окна делается с кратностью в 4 пикселя. Может оно будет правильно работать и при изменении размеров на 1 пиксель я не проверял. В asm версии также сделал изменение размеров кратное 4-м пикселям.
  • Почитал замечания от 0CodErr и сделал такие правки:
    rev 8059
    - добавлена функция gluPerspective,
    - исправлена функция glFrustum (принимает параметры double через стек, раньше принимались указатели на double),
    - немного доработан пример gears.

    Сборка почему-то не пересобралась и ошибок никаких не выдала :?:
  • rev 8062, 8063
    - добавлена функция glOrtho
    - оптимизации и чистка кода
  • rev 8069
    - возможно плавное изменение размеров буфера (снято ограничение на кратность 4-м),
    - исправления и чистки в коде,
    - исправлены и доработаны примеры (в gears появился режим паузы включается через букву P).
  • Привет в папке на SVN /programs/develop/libraries/TinyGL есть примеры на С. Но мне не ясно как я должен их скомпилировать если в папке GL нет нужных заголовочных файлов. Подскажите пожалуйста где их взять?
    Изобретайте колёса каждый раз, когда хотите написать новую программу.
  • Так.
    Был tinygl на Си. Его портировали под kolibri.
    Потом переписали на asm'е. И!
    Библиотека, как и например boxlib лежит в sys/lib и называется tinygl.obj.
    Попробуй переделать те примеры, вместо хедеров библиотеку загружай. Все равно си версия под menuetlibc и ней никто не занимается.
    А на асме так еще и меньше весить будет.


    А если не сможешь загрузить, скомпилируй как статическая .а, и тогда компилируй.
  • superturbocat2001 wrote:Привет в папке на SVN /programs/develop/libraries/TinyGL есть примеры на С. Но мне не ясно как я должен их скомпилировать если в папке GL нет нужных заголовочных файлов. Подскажите пожалуйста где их взять?
    Гугление ведет на сайт автора http://www.iadn.narod.ru/ может там есть?
    Из хаоса в космос
  • rev 8408
    В ассемблерную библиотеку tinygl добавлены функции: glVertex2d, glVertex2dv, glVertex3d, glVertex3dv, glVertex4d, glVertex4dv.
    Также сделан пример подключения tinygl для bcc32.
  • Никто не знает, как подключить Tinygl.obj в Tiny C Compiler, чтобы можно было компилировать внутри KolibriOS?
    Я нашел заголовочные файлы <TINYGL/KOSGL.H>, <GL/GL.H>, <GL/GLU.H> и переписал из SVN /programs/develop/ktcc/trunk/samples/tinygl/gears.c.
    В итоге TCC пишет много строк типа: "tcc: error: undefined symbol 'ФУНКЦИЯ_ИЗ_GL_H'"(ф-ии типа glTranslatef и прочие). Я пробовал в аргументы подсунуть Tinygl.obj, но толку не было.
  • vitalkrilov wrote:Никто не знает, как подключить Tinygl.obj в Tiny C Compiler, чтобы можно было компилировать внутри KolibriOS?
    Я нашел заголовочные файлы <TINYGL/KOSGL.H>, <GL/GL.H>, <GL/GLU.H> и переписал из SVN /programs/develop/ktcc/trunk/samples/tinygl/gears.c.
    В итоге TCC пишет много строк типа: "tcc: error: undefined symbol 'ФУНКЦИЯ_ИЗ_GL_H'"(ф-ии типа glTranslatef и прочие). Я пробовал в аргументы подсунуть Tinygl.obj, но толку не было.
    Ты линкуешь библиотеку? -lимябиблиотеки . P.S логичнее было не здесб задавать этот вопрос а в треде про tcc. Ведь tinygl.obj это просто либа на фасме, таких много
    The best way to predict the future is to create it.
  • vitalkrilov wrote:Никто не знает, как подключить Tinygl.obj в Tiny C Compiler, чтобы можно было компилировать внутри KolibriOS?
    Для этого нужно создать таблицу экспорта функций из библиотеки Tinygl.obj . Потом подключить библиотеку используя для этого таблицу экспорта. Например для компилятора BCC эта таблица выглядит так (для Tiny C Compiler эта таблица будет выглядеть по другому):

    Code: Select all

    #define import_tinygl glEnable
    void (__stdcall* glEnable)(int code) = (void (__stdcall*)(int))&"glEnable";
    void (__stdcall* glDisable)(int code) = (void (__stdcall*)(int))&"glDisable";
    ...
    void (__stdcall* glTranslatef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glTranslatef";
    ...
    Файлы <TINYGL/KOSGL.H>, <GL/GL.H>, <GL/GLU.H> создавались для C++ версии библиотеки Tinygl, которая компилировалась сразу в исполняемый файл программы. Т. е. нужно найти для Tiny C Compiler-а пример подключения какой-либо библиотеки *.obj и сделать по аналогии с ней обертки именно для Tinygl.obj .
  • Спасибо за ответы
    rgimad wrote:Ты линкуешь библиотеку? -lимябиблиотеки .
    Ну.. это как раз и не работало, TCC .obj'ы не принимает
    rgimad wrote:P.S логичнее было не здесб задавать этот вопрос а в треде про tcc. Ведь tinygl.obj это просто либа на фасме, таких много
    Я думал, что дело не в вышенаписанном мною, а в том, что либа какая-то другая (console.obj ведь работал)
    IgorA wrote:Т. е. нужно найти для Tiny C Compiler-а пример подключения какой-либо библиотеки *.obj и сделать по аналогии с ней обертки именно для Tinygl.obj
    Я нашел что-то похожее: viewtopic.php?f=33&t=2980
    Чуть отредактировал и обертка для console.obj сработала. Сейчас буду пробовать делать для Tinygl.obj такое. Если получится, то выложу на форум пример использования с TCC (а то, к сожалению, нет таких).
  • vitalkrilov wrote: Ну.. это как раз и не работало, TCC .obj'ы не принимает
    Да. поэтому надо делать обертку статическую либу (.a), которая подгружает эту obj-либу. И потом уже линковаться с этой оберткой.
    The best way to predict the future is to create it.
  • Who is online

    Users browsing this forum: No registered users and 5 guests