Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JOGL: узнать версию OpenGL? узнать какую версию поддерживает драйвер 
V
    Опции темы
PoloS
  Дата 22.9.2008, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 29.12.2006
Где: МО, г. Одинцово

Репутация: нет
Всего: 5



Доброго вермени суток.

До этого программировал графику на C++. Там проверял, поддерживается ли функция реализацией OGL вызывая функцию wglGetProcAddress("Имя_функции"). Если возвращался указатель на функцию == NULL, значит функция не поддерживается и т.д.

Как подобную процедуру проделать на Java с прикрученным Jogl? Какую мнимальную версию OpenGL должен иметь для запуска приложения? Как проверить, поддерживается ли функция расширения в реализации драйвера?

Заранее спасибо.
PM MAIL ICQ   Вверх
AxNe0
Дата 22.9.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: 4
Всего: 5



Цитата(PoloS @  22.9.2008,  08:11 Найти цитируемый пост)
Как подобную процедуру проделать на Java с прикрученным Jogl?

поищи метод с таким же названием среди классов jogl.
Цитата(PoloS @  22.9.2008,  08:11 Найти цитируемый пост)
Какую мнимальную версию OpenGL должен иметь для запуска приложения?

а зачем это знать? в jogl входят все необходимые библиотеки openGL'а.


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
PoloS
Дата 22.9.2008, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 29.12.2006
Где: МО, г. Одинцово

Репутация: нет
Всего: 5



Цитата(AxNe0 @ 22.9.2008,  10:55)
а зачем это знать? в jogl входят все необходимые библиотеки openGL'а.

Входят то они входят. Но что будет, если я попытаюсь вызвать функцию OpenGL 1.5 например на машине где видюха поддерживает толлько OGL 1.3? Вообщем нужно в run-time узнать версию реализации OpenGL на машине, что бы знать какими методами пользоваться. как это сделать?
PM MAIL ICQ   Вверх
PoloS
Дата 26.9.2008, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 29.12.2006
Где: МО, г. Одинцово

Репутация: нет
Всего: 5



Нашел решение.

Код

package javax.media.opengl;

....

/**
    * Returns true if the specified OpenGL core- or extension-function can be
    * used successfully through this GL instance given the current host (OpenGL
    * <i>client</i>) and display (OpenGL <i>server</i>) configuration.<P> 
    * By "successfully" we mean that the function is both <i>callable</i> 
    * on the machine running the program and <i>available</i> on the current 
    * display.<P> 
    *
    * In order to call a function successfully, the function must be both
    * <i>callable</i> on the machine running the program and <i>available</i> on 
    * the display device that is rendering the output (note: on non-networked, 
    * single-display machines these two conditions are identical; on networked and/or
    * multi-display machines this becomes more complicated). These conditions are
    * met if the function is either part of the core OpenGL version supported by
    * both the host and display, or it is an OpenGL extension function that both
    * the host and display support. <P>
    *
    * A GL function is <i>callable</i> if it is statically linked, or can be 
    * dynamically linked at runtime. 
    * 
    * Whether or not a GL function is <i>available</i> is determined as follows: 
    * <ul>
    *   <li>If the function is an OpenGL core function (i.e., not an
    *   extension), <code>glGetString(GL_VERSION)</code> is used to determine the
    *   version number of the highest OpenGL specification version that both host
    *   and display support, and then the function name is cross-referenced
    *   with that specification version to see if it is part of that version.
    *   <li> If the function is an OpenGL extension, the function name is
    *   cross-referenced with the list returned by
    *   <code>glGetString(GL_EXTENSIONS)</code> to see if the function is one of
    *   the extensions that is supported on both host and display.
    * </ul>
    *
    * <b>NOTE:</b>The availability of a function may change at runtime in
    * response to changes in the display environment. For example, when a window
    * is dragged from one display to another on a multi-display system, or when
    * the properties of the display device are modified (e.g., changing the color
    * depth of the display). Any application that is concerned with handling
    * these situations correctly should confirm availability after a display
    * change before calling a questionable OpenGL function. To detect a change in
    * the display device, please see {@link
    * GLEventListener#displayChanged(GLAutoDrawable,boolean,boolean)}.
    *
    * @param glFunctionName the name of the OpenGL function (e.g., use
    * "glBindRenderbufferEXT" to check if {@link
    * #glBindRenderbufferEXT(int,int)} is available).
    */
   public boolean isFunctionAvailable(String glFunctionName);
   /**
    * Returns true if the specified OpenGL extension can be
    * used successfully through this GL instance given the current host (OpenGL
    * <i>client</i>) and display (OpenGL <i>server</i>) configuration.<P> 
    *
    * @param glExtensionName the name of the OpenGL extension (e.g.,
    * "GL_ARB_vertex_program").
    */
   public boolean isExtensionAvailable(String glExtensionName);

PM MAIL ICQ   Вверх
AxNe0
Дата 26.9.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: 4
Всего: 5



и где мы должны искать эти методы?  smile 


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
PoloS
Дата 26.9.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 29.12.2006
Где: МО, г. Одинцово

Репутация: нет
Всего: 5



Цитата

и где мы должны искать эти методы?  smile  


сорри. пакадж указал а про класс запамятовал. 

Код

class GL

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0787 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.