![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GLScene нужен OpenGL 1.1
Warstone © (2005-09-03 23:20:00)Вот примерно такое сообщение выдаёт GLScene, нашел прогу, которая проверяет OpenGL, у меня поддерживаются все функции вплоть до 2.0 включительно... Что за глюк и как с ним бороться??? Видео: GeForce6600 Драва:77.77_whql
DeadMeat (2005-09-08 12:47:00) [21]Вообще.. если я правильно понимаю, то спор изначально был несколько о другом. Человек не мог понять почему у него GLScene ругается. Ему сказали, что надо качать свежую версию, на что последовал ответ:
Fosgen (05.09.05 00:23) [3]
Насколько мне известно, от версии это вроде бы не зависит. Встречается даже в последних SnapShot'ах... Хотя насчет последних могу и ошибаться.
Прикол в том что в файле GLScene.pas имеется проверка на версию OpenGL 1.1. И сама GLScene заточена именно под эту самую версию. Исправляется эта ошибка тремя способами:
1. Установить Win 2000 (в составе ОС библиотека OGL v.1.1)
2. Заменить библиотеку (теоретически возможно, но не пробовал - мне не нать)
3. Закомментировать этусамую проверку в файле GLScene.pas :)))
Я же могу со всей ответственностью сказать, что скачав последнюю сборку с CVS, от этого бага можно избавиться. Исправление лежит в файле OpenGL1x.pas
Sphinx (2005-09-08 12:18:00) [22]2 Frost (Freak)
Размер увеличивается после установки винды
dl_ -> dll перобразуется путем распаковки, а не переименования, посмотри другие либы для сравнения...
2 Fosgen
Я так и не понял...как-то лихо поменял точку зрения...то "opengl32.dll это единственное что нужно и в ХР оно 2.0" (что в реальности не так совершенно)
То "я ей не пользуюсь потому что это кака"
Вы уж определитесь :)
З.Ы. считаю спор оконченым...
Frost (Freak) (2005-09-08 12:09:00) [23]2 Fosgen:
потому как если в дистрибутиве есть файл opengl32.dl_, размером в 236 Кб, то он вполне может развернуться в 700 Кб. В дистрибутиве. ка известно все ужато
Ты не понял, после установки голой винды он (opengl32.dll) таким и остается. Размер увеличивается при установке дров для видеокарты.
Поставляемые с виндой я немного не люблю...
Да ты шутник :) В стандартной поставке OGL от M$ нет поддержки аппаратного ускорения, т.ч. было бы удивительным, если бы тебе нравились стандартные дрова from Билли ;)
DeadMeat (2005-09-08 10:51:00) [24]Там кнопка даунлоад картинкой сделана.. Я сам такое не люблю.
ftp://ftp2.v3x.net/vx/pub/glview220.exe
Fosgen (2005-09-08 10:15:00) [25]2: DeadMeat - с видеокартой. Поставляемые с виндой я немного не люблю...
Программку я отчего-то не нашел, может из-за плохого и-нета (а сайт с прогой что-то уж больно тяжелый) Но я и так знаю что нету у меня 2.0 в полной мере. Зато это не мешает работать GLScene (старой сборке - я на нее вернулся) в два-три раза быстрее чем всем новым снапшотам... Да и все новые снапшоты показали все новые демки с использованием шейдеров и т.д. - т.е. все работает и не встречал я покамисть ни одного программного продукта, который бы мне ругнулся на отсутсвие функций из 2.0.
Я может быть на этой неделе выложу на adm.trening-omsk.ru архивированную opengl32.dll из своей системы - ее можно будет просто кинуть в папку с любой демкой и проверить как и что будет работать. Думаю все вопросы сразу отвалятся...
DeadMeat (2005-09-07 23:30:00) [26]
> И несмотря на железо (GF6800GT) и родные дрова, GLScene
> на OGL 2.0 у меня совсем не ругалась. Почему бы это не подскажете?
> Хотя можете и не говорить - сам знаю.
А родные это какие? С виндой или с видео картой?
> А Вам всем, сидящим
> под ХР приходится править файл GlScene.pas, на проверку
> OGL_1_1...
А вот мне... не пришлось. Потому как в новой сборе это исправлено. Или вы про старую сборку? Так ведь если старую запустить под не 2.0, то и там не надо...
Вы программку, на которую я ссылку дал смотрели? Какую она вам версию показывает?
Чтото мне подсказывает (хотя могу и ошибаться), что раз старая сборка у вас не ругается на 2.0, то у вас и нету 2.0 в полной мере... Не в смысле самого файла, а в смысле именно результирующей версии.. Со всеми сопряжениями и т.п.
---
...Death Is Only The Begining...
Fosgen (2005-09-07 23:11:00) [27]2: Zer0 - Дык я ж вроде то самое и говорю, дрова от видяхи сопрягаются со стандартной OpenGL32.dll, а та в свою очередь уже с приложениями. Тем самым за сопряжение конкретных дров со стандартной библиотекой отвечает система, а не каждое конкретное приложение. А каждое конкретное приложение сопрягается только со стандартной библиотекой.
2: Sphinx - что с чем сопрягается - не так уж важно, это пака о двух концах. Как M$ что реализует - не так уж важно, они всегда через заднее место все делали, другое дело что они ради пропихивания своего DirectX, готовы установить планку по версии OpenGL. Но сейчас-то этой планки нету! Ни в ХР, ни в 2000-ой...
2: Frost (Freak) - а ничего я на это не скажу, потому как сдается мне что Вы батенька чего-то не доглядели, потому как если в дистрибутиве есть файл opengl32.dl_, размером в 236 Кб, то он вполне может развернуться в 700 Кб. В дистрибутиве. ка известно все ужато. И насколько мне помнится, если уж в дистрибутиве 2000-ой или ХР есть файл, то он непременно будет установлен. А вот найдете ли вы в дистрибутиве драйверов файл opengl32.dl_,вот это - большой вопрос.
Я еще раз говорю (в этот раз - последний - утомила меня эта тема), да драйвера могут расширять набор поддерживаемых системой функций, путем ПОДДЕРЖКИ той либо иной версии. Но они не могут ЗАМЕЩАТЬ собой, либо ОБНОВЛЯТЬ стандартную библиотеку opengl32.dll. А если все уже забыли с чего начиналась ветка - речь шла именно об этой библиотеке, потому как GLScene, как приложение обращается именно к этой библиотеке. Так что сколько Вы не спорьте, у меня на двух домашних машинах стоит одна и та же 2000-я, разное железо (ATi и nVidia), но вот библиотека opengl32.dll отчего-то одна и таже на обоих размером 677 Кб. И несмотря на железо (GF6800GT) и родные дрова, GLScene на OGL 2.0 у меня совсем не ругалась. Почему бы это не подскажете? Хотя можете и не говорить - сам знаю. А Вам всем, сидящим под ХР приходится править файл GlScene.pas, на проверку OGL_1_1...
Тему, ввиду явного исчерпания, предлагаю закрыть.
DeadMeat (2005-09-07 21:20:00) [28]
> WM_KILL_YOUSELF_APSTENU
Как же тебе это выражение та понравилось...
Уже видов 5 от тебя я его видел...
---
...Death Is Only The Begining...
Zer0 (2005-09-07 19:19:00) [29][7] Fosgen: WM_KILL_YOUSELF_APSTENU
Шейдеры и всякие расширения и функции типа _ARB_ и _EXT_, а тем более NW_ или ATI_ стандартной длл`кой ну никак обрабатываться не могут.
Есть предположение что дроваGL от видяхи динамически линкуются со стандартной опенжл.длл, и перегружает больинство функции от M$. Передавать параметры через еще один (да еще и совершенно ненужный) уровень абстракции от опенгл к дровам - это не лучшее решение. Почему не сделать это напрямую?
Sphinx (2005-09-07 15:04:00) [30]2 Fosgen
Может и спорно что ХР без SP не поддерживает OGL, НО движек Q3, а конкретно RTCW выдал мне именно такую информацию...и пока я дрова от видяшки не поставил (а тогда у меня стоял GF 2MX дрова от которого в ХР как говорится "в комплекте") я не смог эту игру запустить...
Прикол был в том, что выдавало именно "has no OpenGL support" а не то, что не та версия...
Про отсутствие opengl32.dll в SP1 и SP2 и слова не было...
Идем дальше...значит в XP SP2 заявлено OGL2.0 ???
Хммм...читаю Platform SDK for Windows XP SP2 - ни слова об этом...
Ну ладно...смотрю заголовочный файл gl.h
#ifndef __GL_H__
#define __gl_h_
#define __GL_H__
#ifdef __cplusplus
extern "C" {
#endif
/*
** Copyright 1996 Silicon Graphics, Inc.
** All Rights Reserved.
**
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
** the contents of this file may not be disclosed to third parties, copied or
** duplicated in any form, in whole or in part, without the prior written
** permission of Silicon Graphics, Inc.
**
** RESTRICTED RIGHTS LEGEND:
** Use, duplication or disclosure by the Government is subject to restrictions
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
** rights reserved under the Copyright Laws of the United States.
*/
typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef signed char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef int GLsizei;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;
typedef void GLvoid;
/*************************************************************/
/* Version */
#define GL_VERSION_1_1 1
Странно, если заявлена поддержка 2.0 ....почему тогда в строке версии стоит 1.1 ?
Или я чего-то недопонимаю...
Еще одна непонятка...
Future in Microsoft Windows
On August 6, 2005, Microsoft's intentions for OpenGL support in Windows Vista were revealed on in an Opengl.org news announcement:
Microsoft's current plan for OpenGL on Windows Vista is to layer OpenGL over Direct3D in order to use OpenGL with a composited desktop to obtain the Aeroglass experience. If an OpenGL ICD is run - the desktop compositor will switch off - significantly degrading the user experience.
In practice this means for OpenGL under Aeroglass:
OpenGL performance will be significantly reduced - perhaps as much as 50%
OpenGL on Windows will be fixed at a vanilla version of OpenGL 1.4
http://en.wikipedia.org/wiki/OpenGL
Как в ХР может быть 2.0 если в Vista заявлен только 1.4 (про то, как реализован - вообще молчу) ???
И более того...ищем в реестре WindowsXP и что же видим...
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers
а там подраздел RIVATNT
и там параметр Dll = nvoglnt
Ну скажите мне что эта запись в реестре случайна :)
И что меня особо смущает opengl32.dll - OpenGL Client DLL
nvoglnt.dll - NVIDIA Compatible OpenGL ICD
Скорее всего дела обстоят именно так как Вы сказали, только с точностью до наоборот - opengl32.dll (та, что в Windows поумолчанию) это и есть библиотека сопряжения, которая вызывает nvoglnt.dll
Frost (Freak) (2005-09-07 13:42:00) [31]Вношу свою лепту в затянувшийся спор:
В дистрибутиве Windows XP содержится файл opengl32.dl_ (ни у кого не возникает сомнений, что это opengl32.dll? ;)). Вес 236 Кб.
В SP2 также есть opengl32.dl_, но вес уже 234 Кб.
А после установки дров в system32 появляется файл opengl32.dll весом в 700 Кб.
Ну, уважаемый Fosgen, что на это скажешь? ;)
На мой взгляд, все очевидно :)
КиТаЯц (2005-09-07 13:24:00) [32]> Fosgen
Все логично, но... Из моего опыта...
XP Sp2 = все ОК (!!!)
XP Sp2 + CATALYST примерно до 5.7 = все ОК
XP Sp2 + CATALYST примерно c 5.7 (сейчас 5.8) = "давай OGL 2.0"
Момент когда это началось, к пребольшому моему сожалению, "прощелкал"...
Обновлений и заплаток XP не качал и не ставил (комп дома), но регулярно обновлял GLScene по CVS. (обновлял на работе и домой таскал - кидал поверх)
Вот теперь и думаю: все таки драйвера или новые снапшоты?
Fosgen (2005-09-07 11:23:00) [33]Да нет я не через строчку читаю... А вот Ваше утверждение о том что ХР без сервис-пака вообще неподдерживает OpenGL - мягко говоря спорно. Библиотека-то opengl32.dll никуда не девается, причем то что ее нет в сервис-паках, Вы вроде сами утверждали.
Да вот даже на своем собственном опыте могу сказать, стояла у меня ХР-шка без SP, нормально OpenGL работал, аппаратно. А насчет "NVOGLNT.DLL - OpenGL 2.0" - я бы так не утверждал определенно. Как я уже говорил, библиотеки opengl32.dll в 2000-ой и в ХР - сильно отличаются (даже по размеру), и в доках по ХР, сразу заявлялось о поддержке OpenGL 2.0. Так что dll-ки, приводимые Вами в пример - только лишь библиотеки сопряжения. Поэтому-то они и называются как разработчику взбрело. Например у той же ATi, в каждой версии дров свой такой модуль. А почему так? Да потому что напрямую приложения обращаются именно к opengl32.dll, а не к упоминаемым Вами модулям. Разумеется в них должна наличествовать поддержка OpenGL 2.0, иначе система просто будет считать что Ваше железо не понимает версию 2.0.
Sphinx (2005-09-07 09:12:00) [34]2 Fosgen
Вы меня через строчку читаете ?
opengl32.dll - OpenGL 1.1
NVOGLNT.DLL - OpenGL 2.0 (в случае если видео от nVidia и ось - WinXP, для Radeon это будет другая библиотека)
Что требуются обе либы знаю, по логам разных ошибок и дампам памяти на момент ошибки...и это вполне логично...
Fosgen (2005-09-07 00:30:00) [35]Вот только я что-то не вижу драйверов, заменяющих OpenGL на версию 2.0. И в любом случае, какие бы дрова не стояли, почему-то opengl32.dll всегда требуется. А вы что - не проверяли? Удивительно как-то... О чем мы тогда вообще говорим? Вы бы хоть разобрались какие dll-ки в системе за что отвечают...
Sphinx (2005-09-06 13:31:00) [36]2 Fosgen
Где я писал что дрова заменяют opengl32 ?
Я кажется написал, что по умолчанию во все версии винды пихается opengl32.dll с OpenGL 1.1
А если необходимо использовать более современные версии - то надо ставить дрова от видеокарты, где будет СВОЯ библиотека, которая и реализует OpenGL 2.0 например...и это именно либа NVOGLNT.DLL для nVidia под WinXP. О чем прямо и написано...соответственно не поставив дров - максимум на что можем расчитывать - OGL 1.1
И хоть за сервиспакся - 2.0 не будет, потому что M$ посавляет только 1.1, да и то невсегда...
А в ХР без SP вообще нет поддержки OGL - общеизвестный факт, только софтварная эмуляция...
Fosgen (2005-09-06 10:28:00) [37]А где тут сказано что дрова меняют системную библиотеку? И сравнивать стандартность по размеру библиотеки - ну вы меня извините, конечно, но это не совсем... логично что ли...
Да если бы и так - понятно что dll-ка сопряжения может весить и поболе самой системной потому как она отвечает за работу железа в формате стандарта. А уж чего они про железо намудрили это вообще отдельный вопрос...
Насчет приложенной выдержки из FAQ по установке дров.
первый вопрос - Если соотносить с последним, то как раз и получается: библиотека-то всегда в винде есть, да вот OpenGL не работает корректно, если драйвера видяхи плохо его сопрягают с железом. Логично? Отсюда и совет - замените дрова.
А по последнему вопросу - так я вообще последний месяц только это и твержу - что библиотека opengl32.dll ВХОДИТ В СОСТАВ ВИНДЫ.
А к вопросу о версии - этот FAQ, откуда выдержка, учитывает такую штуку как Service Pack? И вообще вы проверяли какая версия OGL в ХР-шке БЕЗ SP? Вот SP-то как раз и способен заменить системные библиотеки. А драйверов с библиотекой opengl32.dll я покамисть не всречал. Да и мне их никто показать не смог. Пока что...
Sphinx (2005-09-05 23:33:00) [38]Вот еще пара "непонятных" моментов про OpenGL и дрова для видяхи:
Q. What do I need to install?
A.If OpenGL is not working for you correctly and your PC or laptop does have an OpenGL-savvy graphics card, all you should need to do is install the latest OpenGL driver from your graphics card manufacturer. Simply go to your graphics card manufacturer's website and download and install their latest OpenGL driver. If you cannot find the driver, send an email to the technical support department of the card manufacturer. If you are still having trouble, check the OpenGL Hardware, Software, & Gaming Message Board.
Q. Where can I find the latest OpenGL driver for my graphics card?
A. Go to your graphics card manufacturer's website and download and install their latest OpenGL driver.
Q. Is OpenGL compatible with Windows XP?
A. Yes, it is completely compatible. Windows (all recent versions) ships with the OpenGL 1.1 runtime library. And chances are that your PC hardware distributor pre-installed OpenGL drivers for you graphics card. However, you may need to get the latest updates from your graphics card manufacturer's website. Go to their site and download and install their latest OpenGL drivers.
http://www.opengl.org/applications/installing.html
Sphinx (2005-09-05 23:19:00) [39]Может я чего и путаю...
File list
---------
<scip>
NVOGLNT.DLL - NVIDIA OpenGL driver
весит эта библиотека 4.9 МБ для версии 77.77 2k_XP (20 июля 2005)
То есть она просто дает доступ к системной библиотеке OpenGL Client DLL - opengl32.dll весом 697 kb и датой выпуска 17 августа 2004 (XP SP2) ?
Зачем городить либу для ОБЕСПЕЧЕНИЯ СВЯЗИ весом под 5 метров, когда сама библиотека 700 килов весит ???
Fosgen (2005-09-05 22:49:00) [40]Народ такое впечатление что закралась деза в Ваши ряды. Драйвера МОГУТ содержать библиотеки ОБЕСПЕЧИВАЮЩИЕ СВЯЗЬ железа с СИСТЕМНОЙ БИБЛИОТЕКОЙ opengl32.dll! Но они никогда не содержали самой этой библиотеки! Эта dll-ка ставится вместе с виндой. Т.к. в ХР-шке имеет место быть opengl32.dll версии 2.0, то и поддержка сей версии наличествует. Например у меня под 2000-ой никаких вопросов про версию вообще не возникало. А все потому что в 2000 библиотека версии 1.1, а GLScene проверяет именно на эту версию (либо не проверяет совсем). А с какого перепугу вы решили что драйвера имеют в своем составе opengl32.dll - не понимаю. У меня дома на одной машине ATi, на другой GF6800GT с родными драйверами - ни в одном комлекте системных библиотек не наблюдается. Так что - кончайте глючить народ по поводу драйверов.
Да библиотеку можно скачать, да ее можно обновить просто заменив файл в папках system32 и dllcache (файл не относится к ядру - дает возможность перезаписи в run-time). Но я лично так не делал, потому как мне - нафиг не нать. Тем более что старый релиз GLScene работает с родной dll-кой 2000-ой на ура и гораздо быстрее. В общем - пробуйте на свой страх и риск. А дрова оставьте в покое. Слишком много смотрю на них стали стрелки переводить. И вообще 2000-я рулит!