Конференция "FreePascal" » Портирование с Windows+Delphi на FreePascal+Windows/Linux
 
  • @!!ex © (17.11.07 21:42) [0]
    Модераторы, прошу прощения за дублирование.
    Первый раз ошибся конференцией, написал в прочее.
    _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Перевожу графическое приложение с Delphi на FreePascal, чтобы оно компилилось под LInux'ом.
    Само по себе приложение не очень зависит от ОС, 99% кода никак с ОС не всязан.
    Остается только:
    Создание окна
    Получение количества милисекунд прошедших с начала работы системы GetTickCount
    получение состояния клавиатуры GetKeyboardState
    Положение мыши GetCursorPos SetCursorPos
    и вопрос, который я в принципе не понимаю...
    OpenGL - это куча функций находящихся в dllке. По умолчанию в стандарте прописаны только основные функции. Чтобы получить доступ к расширениям приходится делать что-то типа:
    procedure glVertexPointer(size:GLint; atype:GLenum; stride:GLsizei; data:pointer); stdcall; external OpenGL32;
    или
    glCreateShaderObjectARB      := wglGetProcAddress('glCreateShaderObjectARB');
    Как сделать тоже самое в LInux?? ведь там же НЕТ dll...

    помогите перевести этот код под Linux...
  • аноним (28.01.08 17:53) [1]
    Не в курсе, как будет конкретно с OpenGL в Linux, но по идее должно быть что-то вроде

    procedure glVertexPointer(size:GLint; atype:GLenum; stride:GLsizei; data:pointer); cdecl; external 'opengl.so';

    Вместо opengl.so должно стоять реальное имя библиотеки ("местный DLL").
  • Fredy314 © (29.01.08 20:26) [2]
    uses gl;
    там по идее прописано
  • @!!ex © (08.04.08 06:33) [3]
    > [1] аноним   (28.01.08 17:53)

    Спасибо! ТОчно так и есть. Смотрю сорсы FPCшные, вроде все понятно.


    > [2] Fredy314 ©   (29.01.08 20:26)

    Скорее всего придем к тому, что не будет НИЧЕГО стандартного, кроме системных вызовов. Это проще контролировать.
    ИМ в вашем способе проблема в том, что сам то ОГЛ доступен, а вот расширения все равно подключать надо.
  • МистерТ (08.04.08 09:13) [4]
    > @!!ex ©   (08.04.08 06:33) [3]
    Где-то в форумах пробегало, что в линуксе, в отличае от Win та же nVidia поставляет заголовочные файлы не к ogl1.1+расширения, а непосредственно к версиям (например ogl2.0) и динамически подключать расширения не требуется - они уже прописаны, достаточно определить необходимый дефайн для версии ogl. Но заголовки только на сях.

    Про создание окна и получение событий клавиатуры и мыши - посмотри про XWindow, именно там все это и организовано. Более экзотические варианты думаю тебя не заинтересуют.
 
Конференция "FreePascal" » Портирование с Windows+Delphi на FreePascal+Windows/Linux
Есть новые Нет новых   [118654   +12][b:0][p:0]