А если серьёзно попытаюсь сделать простенький пример, с гиганской текстурой 300х300.
------------ Дoбавленo:
Эдик, видеокарта оказалась не причём, причина в непонимании работы элементов OpenGL.
Пример сделать таки удалось, помог пример Nic(а) подтормаживаний нет, но вылезла проблемка "Луна" в дисплейном списке индекс 1, при загрузке текстуры более чем 128х128 превращается в муар, с "Землёй" проблем нет. Пример без текстур для уменьшения размера.
#sha
Add(MainForm,15261923,-254,28)
{
Left=20
Top=105
Width=581
Height=580
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
link(onCreate,16299401:doEvent1,[(-203,48)(-203,118)])
link(onResize,3213527:doWork1,[(-103,55)])
}
Add(GL_Main,12986311,-86,112)
{
link(onInit,16663485:doEnabled,[])
link(onViewPort,3410847:doPerspective,[(-46,125)(-46,160)])
link(Handle,15261923:Handle,[(-80,86)(-234,86)])
}
Add(Timer,9506849,-226,210)
{
Interval=3
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,-107,252)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(GL_GluTools,4593655,236,112)
{
Texture=0
link(onInit,6976573:doEnabled,[])
}
Add(Hub,1049454,-177,210)
{
OutCount=5
link(onEvent1,771925:doClear,[(-117,216)(-117,258)])
link(onEvent2,771925:doPushMatrix,[(-126,223)(-126,265)])
link(onEvent3,10714674:doWork1,[(-59,230)(-59,237)])
link(onEvent4,771925:doPopMatrix,[(-134,237)(-134,272)])
link(onEvent5,12986311:doFlip,[(-124,244)(-124,132)])
}
Add(Hub,16299401,-184,112)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,3213527:doWork2,[])
link(onEvent3,9506849:doTimer,[(-138,132)(-138,177)(-232,177)(-232,216)])
}
Add(MultiElement,10714674,26,231)
{
link(onEvent1,9945092:doWork1,[])
link(Data1,14771766:Value,[])
link(Data2,6043289:Value,[(39,215)(88,215)])
}
BEGIN_SDK
Add(EditMulti,4359962,10,10)
{
EventCount=1
WorkCount=1
DataCount=2
Width=181
Height=109
link(doWork1,3276760:doRotate,[(19,9)(19,55)])
}
Add(GL_Rotate,3276760,35,49)
{
Y=1
link(onRotate,8079493:doRotate,[])
link(Angle,4359962:Data1,[(41,26)(9,26)])
}
Add(GL_Rotate,8079493,112,49)
{
X=1
link(onRotate,4359962:onEvent1,[(168,55)(168,16)])
link(Angle,4359962:Data2,[(118,16)(16,16)])
}
END_SDK
Add(HubEx,3213527,-107,112)
{
link(onEvent,12986311:doViewPort,[])
}
Add(Counter,8759509,187,231)
{
Max=360
link(onNext,9499143:doRotate,[])
}
Add(Memory,14771766,26,168)
{
Default=Integer(9)
}
Add(Memory,6043289,82,168)
{
Default=Integer(110)
}
Add(GL_Light,6976573,285,112)
{
link(onEnabled,14234746:doCreate,[])
}
Add(GL_Options,16663485,26,112)
{
Flag=2
link(onEvent,1571481:doEnabled,[])
}
Add(GL_Options,1571481,82,112)
{
link(onEvent,15984634:doEnabled,[])
}
Add(GL_Options,15984634,131,112)
{
Flag=1
link(onEvent,4296278:doEnabled,[])
}
Add(GL_Perspective,3410847,-37,154)
{
Fovy=30
}
Add(MultiElement,9945092,138,231)
{
link(onEvent1,8759509:doNext,[])
}
BEGIN_SDK
Add(EditMulti,13416492,10,10)
{
EventCount=1
WorkCount=1
Width=608
Height=137
link(doWork1,11196606:doPushMatrix,[(30,16)(30,76)])
}
Add(GL_Sphere,12678019,406,70)
{
Radius=0.15
link(onDraw,16242413:doPopMatrix,[])
}
Add(Gl_Translate,6506827,301,70)
{
Z=1.5
link(onTranslate,12970743:doCallList,[])
}
Add(GL_Rotate,15834536,252,70)
{
X=1
link(onRotate,6506827:doTranslate,[])
}
Add(GL_GTools,11196606,49,70)
{
Point(doPushMatrix)
link(onEvent,4975387:doDraw,[])
}
Add(GL_GTools,16242413,462,70)
{
Point(doPopMatrix)
link(onEvent,13416492:onEvent1,[(556,76)(556,16)])
}
Add(Counter,13547329,203,70)
{
Max=360
link(onNext,15834536:doRotate,[])
}
Add(GL_Disk,4975387,98,70)
{
InRadius=1.5
OutRadius=1.5
Slices=1
Stacks=1
link(onDraw,305284:doRotate,[])
}
Add(GL_Rotate,305284,154,70)
{
Angle=90
Y=1
link(onRotate,13547329:doNext,[])
}
Add(GL_CallList,12970743,357,70)
{
Index=1
link(onCallList,12678019:doDraw,[])
}
END_SDK
Add(GL_Sphere,12678019,327,231)
{
Slices=60
Stacks=60
}
Add(GL_Rotate,9499143,236,231)
{
Z=1
link(onRotate,8850857:doCallList,[])
}
Add(GL_Texture,14234746,327,112)
{
UseList=0
Index=1
link(onCreate,552462:doCreate,[])
link(Bitmap,14855894:Bitmap,[])
}
Add(Bitmap,14855894,327,70)
{
}
Add(GL_Texture,552462,369,112)
{
UseList=0
Index=2
link(Bitmap,15523538:Bitmap,[])
}
Add(GL_CallList,8850857,285,231)
{
Index=2
link(onCallList,12678019:doDraw,[])
}
Add(GL_Options,4296278,180,112)
{
Flag=10
link(onEvent,4593655:doInit,[])
}
Add(Bitmap,15523538,369,70)
{
}