Конференция "Игры" » Как использовать wglGetProcAddress? [Delphi, Windows]
 
  • mihail (05.11.09 23:19) [0]
    Есть функция wglGetProcAddress возвращающая указатель на функцию OpenGL. Вот сишный код, а как его переделать на паскаль?

    GLuint s = ((wglGetProcAddress("glCreateShader")))(GL_VERTEX_SHADER);
    ((PFNGLSHADERSOURCEPROC)wglGetProcAddress("glShaderSource"))(s,1, &vsh,0);
    ((PFNGLCOMPILESHADERPROC)wglGetProcAddress("glCompileShader"))(s);
    ((PFNGLATTACHSHADERPROC)wglGetProcAddress("glAttachShader"))(p,s);


    Т.е. вызов функций с параметрами.

    И вообще какой плюс в использовании wglGetProcAddress, а не объявление обычным способом?
    Уменьшается размер приложения за счет уменьшения таблицы импорта?
  • mihail (05.11.09 23:36) [1]
    Ладно, как использовать я разобрался остался вопрос в рациональности.
  • mihail (06.11.09 00:25) [2]
    Появилась проблема компилятор 3 делфя не понимает записи типа:
    var
     glCreateProgram: function():UINT; stdcall;    
     glCreateShader: function(type:integer):UINT; stdcall;

    Как с этим разобраться? Т.е. можно произвести вызов функции без объявления ее как переменной?
  • CrytoGen (06.11.09 08:10) [3]
    попробуй заменить UINT на Cardinal
  • mihail (06.11.09 14:14) [4]
    Не проблема не в типах. Дело в том что блок VAR воспринимается как блок TYPE и она видит неправильную запись :

    DEMO.pas(22) Error: Identifier expected but 'TYPE' found
    DEMO.pas(22) Error: '=' expected but ')' found
    DEMO.pas(22) Error: '=' expected but ';' found
    DEMO.pas(23) Error: '=' expected but ':' found
  • @!!ex © (06.11.09 14:35) [5]
    ВОт поэтому везде в генофонде _type
  • имя (15.11.09 03:00) [6]
    Удалено модератором
 
Конференция "Игры" » Как использовать wglGetProcAddress? [Delphi, Windows]
Есть новые Нет новых   [119102   +93][b:0][p:0.001]