Вверх ↑
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
#31: 2011-01-12 22:57:28 ЛС | профиль | цитата
Dilma, если Вам нужны деньги, то это не вопрос, но только не сразу.
Этого нужно подождать.
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#32: 2011-01-12 23:01:42 ЛС | профиль | цитата
login, ты мне объясни -- какго ты прикопался к FTCG отрисовке, что, по-другому сделать никак нельзя
карма: 22

0
Ответов: 1429
Рейтинг: 50
#33: 2011-01-12 23:41:21 ЛС | профиль | цитата
nesco, я почти весь проэкт делаю в FTCG. У меня не файловая утилита, со стандартными контролами и оффлайновой работой, вида: "файл копируется на сервер, подождите..."

Тут все должно быть почти, в реальном времени. У моих конкурентов именно так все и работает. Я попробовал рисовать пиксел стандартным пакетом, это еще медленнее.. У вас есть мысль?
------------ Дoбавленo в 23.41:
И еще в процессе работы, поле программы - движется, индикаторы - прыгают и т. п..
Юзер меняет масштабы обьектов, на ходу. Это специфика. У конкурентов это проиходит плавно, значит, как минимум, более 25 раз в секунду Refresh.
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#34: 2011-01-12 23:45:08 ЛС | профиль | цитата
login писал(а):
Я попробовал рисовать пиксел стандартным пакетом, это еще медленнее

А почему именно пиксель Ведь попиксельная отрисовка -- это очень медленный метод
------------ Дoбавленo в 23.45:
login писал(а):
У конкурентов это проиходит плаыно, значит как минимум более 25 раз в секунду Refresh

Что-то мне подсказывает, что на стандартном методе графической отрисовки ты такого не получишь, даже, используя FTCG. Может, OpenGL попробовать для этой цели, но в нем я ниразу не специалист, так, идея в голову пришла
карма: 22

0
Ответов: 1429
Рейтинг: 50
#35: 2011-01-12 23:51:53 ЛС | профиль | цитата
В моем посте 12 Jan 2011 01:30 я привел фото. Вы прелагаете, мне, всё сделать линиями и прямоугольниками, а кривые написовать попиксельно? Я подумываю об этом. А глобальные переменные работают в FTCG мультике?
------------ Дoбавленo в 23.51:
Опен GL меня сильно привлекает в этом смысле. Я его обдумываю, но там другая проблема четкость изображения. Я несмог аккуратно попасть пиксел в пиксел на тесте. Чтобы выглядело как винда.
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#36: 2011-01-12 23:55:10 ЛС | профиль | цитата
А эти линии что, по экрану прыгать должны
карма: 22

0
Ответов: 1429
Рейтинг: 50
#37: 2011-01-12 23:56:44 ЛС | профиль | цитата
Их юзер изгибает при создании музыки, и потом они движутся по экрану в процессе проигрывания трека.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#38: 2011-01-13 00:16:15 ЛС | профиль | цитата
login писал(а):
Тут все должно быть почти, в реальном времени. У моих конкурентов именно так все и работает. Я попробовал рисовать пиксел стандартным пакетом, это еще медленнее.. У вас есть мысль?

каков объем области отрисовки? GDI рисование с частой 25fps и выше на площадях более 400x400 может кушать одно ядро CPU на 100%. OpenGL в данном случае более приемлемый вариант
карма: 27
0
Ответов: 1429
Рейтинг: 50
#39: 2011-01-13 01:47:25 ЛС | профиль | цитата
Dilma, площадь две трети экрана. Но юзер может выставить и большое разрешение, тут от него зависит. Но я Вам верю, скорее всего я плохо сделал тест, и я попробую снова на OpenGL попасть пикселом в пиксел. Теоретически, это, ведь, должно быть возможно.
------------ Дoбавленo в 01.47:
А у Вас есть работающий пример вывода OpenGL в FTCG? Ато у меня не компилируется.


Add(MainForm,15261923,35,35)
{
Left=20
Top=105
Width=440
Height=421
Color=-16777208
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
link(onCreate,16299401:doEvent1,[(92,55)(92,181)])
link(onResize,5948759:doWork1,[(158,62)])
}
Add(GL_Main,12986311,175,175)
{
Color=-16777208
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(223,188)(223,230)])
link(Handle,15261923:Handle,[(181,147)(55,147)])
}
Add(Timer,9506849,63,259)
{
Interval=22
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,175,259)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,112,259)
{
OutCount=5
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,10714674:doWork1,[(217,279)(217,132)])
link(onEvent4,771925:doPopMatrix,[(150,286)(150,279)])
link(onEvent5,12986311:doFlip,[(159,293)(159,195)])
}
Add(Hub,16299401,105,175)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,5948759:doWork2,[])
link(onEvent3,9506849:doTimer,[(147,195)(147,233)(53,233)(53,265)])
}
Add(GL_GluTools,12198675,238,175)
{
link(onInit,1101264:doEnabled,[])
}
Add(GL_Light,14989894,434,175)
{
link(onEnabled,1071681:doLineSize,[])
}
Add(GL_Options,1101264,287,175)
{
link(onEvent,5851269:doEnabled,[])
}
Add(GL_Options,5851269,336,175)
{
Flag=1
link(onEvent,5809249:doEnabled,[])
}
Add(GL_Options,5809249,385,175)
{
Flag=2
link(onEvent,14989894:doEnabled,[])
}
Add(MultiElement,10714674,238,126)
{
link(onEvent1,10589800:doCallList,[])
link(Data1,15261923:MouseX,[(244,110)(48,110)])
link(Data2,15261923:MouseY,[(251,104)(55,104)])
}
BEGIN_SDK
Add(EditMulti,4359962,3,3)
{
EventCount=1
WorkCount=1
DataCount=2
Width=223
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,[(62,15)(9,15)])
}
Add(GL_Rotate,8079493,112,49)
{
X=1
link(onRotate,4359962:onEvent1,[(189,55)(189,9)])
link(Angle,4359962:Data2,[(139,8)(16,8)])
}
END_SDK
Add(GL_Options,13063080,532,175)
{
Flag=6
link(onEvent,14887042:doBeginList,[])
}
Add(Gl_Begin,8902146,749,231)
{
BlockType=1
link(onBegin,2764068:doVertex,[])
}
Add(GL_Vertex3D,14661812,777,126)
{
link(onVertex,5245264:doVertex,[])
}
Add(GL_Vertex3D,5245264,826,126)
{
X=0.5
Y=1
link(onVertex,6069265:doVertex,[])
}
Add(GL_Vertex3D,6069265,875,126)
{
X=-0.5
Y=1
}
Add(Gl_BeginList,14887042,588,175)
{
Index=100
link(onBiginList,14038074:doFor,[(630,181)(630,219)(578,219)(578,237)])
}
Add(Gl_End,7123409,952,231)
{
}
Add(Gl_EndList,8857071,588,287)
{
}
Add(GL_CallList,10589800,287,126)
{
Index=100
}
Add(For,14038074,588,231)
{
End=7
link(onEvent,5709654:doData,[])
link(onStop,8857071:doEndList,[(630,244)(630,275)(578,275)(578,293)])
}
Add(GL_Rotate,5714585,686,231)
{
Angle=45
X=1
link(onRotate,8902146:doBegin,[])
}
Add(DoData,5709654,637,231)
{
link(onEventData,5714585:doRotate,[])
}
Add(GL_PrimSizes,1071681,483,175)
{
link(onSize,13063080:doEnabled,[])
}
Add(HubEx,5948759,154,182)
{
link(onEvent,12986311:doViewPort,[])
}
Add(GL_Perspective,3410847,238,224)
{
Fovy=20
}
Add(FTCG_Tools,2764068,847,231)
{
link(onVertex,7123409:doEnd,[])
}
BEGIN_SDK
Add(EditMultiEx,15833725,21,21)
{
WorkCount=#8:doVertex|
EventCount=#8:onVertex|
link(doVertex,6863001:doVertex,[(81,27)(81,90)])
}
Add(GL_Vertex3D,6863001,98,84)
{
link(onVertex,5726441:doVertex,[])
}
Add(GL_Vertex3D,5726441,161,84)
{
X=0.5
Y=1
link(onVertex,11897519:doVertex,[])
}
Add(GL_Vertex3D,11897519,224,84)
{
X=-0.5
Y=1
link(onVertex,15833725:onVertex,[(306,90)(306,27)])
}
END_SDK


карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#40: 2011-01-13 03:10:48 ЛС | профиль | цитата
login писал(а):
Теоретически, это, ведь, должно быть возможно.

несколько старых версий hiasm когда-то рисовали схему полностью в OpenGL

login писал(а):
Ато у меня не компилируется.

http://forum.hiasm.com/forum.html?q=3&p=159916
карма: 27
0
Ответов: 1429
Рейтинг: 50
#41: 2011-01-13 05:57:11 ЛС | профиль | цитата
Dilma, заработало! СпасибО!
------------ Дoбавленo в 05.07:
Но GLPoint3D не имеет точки do. Как рисовать точки?
------------ Дoбавленo в 05.57:
Вот так получается точки делать, это нормально?

Add(MainForm,15340401,98,105)
{
Height=400
Color=3355447
Caption="Куб и сфера рисуются в пределах прямоугольника"
Position=1
Point(Handle)
link(onCreate,5558289:doEvent1,[])
}
Add(GL_Perspective,2,322,161)
{
Fovy=35
zFar=100
}
Add(GL_Main,3,273,119)
{
Color=3355447
link(onInit,4:doInit,[])
link(onViewPort,2:doPerspective,[(313,132)(313,167)])
link(Handle,15340401:Handle,[(279,103)(136,103)(136,151)(104,151)])
}
Add(Timer,5,175,161)
{
Interval=33
Enable=1
link(onTimer,7:doEvent1,[])
}
Add(GL_GTools,6,273,161)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,7,217,161)
{
OutCount=6
link(onEvent1,6:doClear,[])
link(onEvent2,6:doPushMatrix,[])
link(onEvent3,4643888:doColor,[(259,181)(259,307)])
link(onEvent4,10589800:doCallList,[(266,188)(266,223)])
link(onEvent5,3:doFlip,[(252,195)(252,139)])
link(onEvent6,6:doPopMatrix,[(252,202)(252,181)])
}
Add(Hub,5558289,147,119)
{
OutCount=3
link(onEvent1,3:doInit,[])
link(onEvent2,3:doViewPort,[])
link(onEvent3,5:doTimer,[(169,139)(169,167)])
}
Add(GL_GluTools,4,322,119)
{
Texture=0
link(onInit,26:doEnabled,[])
}
Add(GL_Light,26,364,119)
{
Ambient=16777215
link(onEnabled,14322260:doEnabled,[])
}
Add(GL_Options,14322260,406,119)
{
link(onEvent,14251063:doEnabled,[])
}
Add(GL_Options,14251063,448,119)
{
Flag=1
link(onEvent,614504:doEnabled,[])
}
Add(GL_Options,614504,490,119)
{
Flag=2
}
Add(FTCG_Tools,832502,511,301)
{
link(onBegin,7123409:doEnd,[])
}
BEGIN_SDK
Add(EditMultiEx,2509702,21,21)
{
WorkCount=#6:doDraw|
EventCount=#7:onBegin|
Width=629
Height=445
link(doDraw,12554484:doBegin,[(218,27)(218,146)])
}
Add(GL_Sphere,9244665,84,273)
{
Radius=2
Slices=200
Stacks=200
}
Add(GL_Cube,5749111,140,273)
{
Size=2
}
Add(GL_Torus,9242051,238,273)
{
inRadius=1
outRadius=2
Sides=4
Rings=4
}
Add(GL_Cylinder,13862500,189,273)
{
}
Add(GL_Vertex3D,3230167,308,140)
{
link(onVertex,16474002:doVertex,[])
}
Add(GL_Vertex3D,16474002,357,140)
{
X=0.5
Y=-1
link(onVertex,14749228:doVertex,[])
}
Add(GL_Vertex3D,14749228,406,140)
{
X=-0.5
Y=-1
link(onVertex,2509702:onBegin,[(509,146)(509,27)])
}
Add(Gl_Begin,12554484,252,140)
{
link(onBegin,3230167:doVertex,[])
}
END_SDK
Add(GL_Color,4643888,420,301)
{
Color=15000808
link(onColor,14887042:doBeginList,[])
}
Add(Gl_BeginList,14887042,462,301)
{
Index=100
link(onBiginList,832502:doDraw,[])
}
Add(Gl_EndList,8857071,602,301)
{
}
Add(Gl_End,7123409,560,301)
{
link(onEnd,8857071:doEndList,[])
}
Add(GL_CallList,10589800,322,217)
{
Index=100
}


карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#42: 2011-01-13 15:49:23 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2025-02-25 16:20:06
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#43: 2011-01-13 16:30:42 ЛС | профиль | цитата
178.127.5.188 писал(а):
code_22187.txt

А кто сказал, что можно совмещать обычные компоненты и компоненты FTCG внутри контейнера FTCG_Tools
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#44: 2011-01-13 16:42:02 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2025-02-25 16:20:07
карма: 0

0
Разработчик
Ответов: 26303
Рейтинг: 2146
#45: 2011-01-13 16:48:43 ЛС | профиль | цитата
178.127.5.188 писал(а):
по ссылки выше можно посмотреть ответ на твой вопрос

Очень странно, но приведенный пример не работал у меня, пока я не вытащил обычные компоненты за пределы FTCG_Tools

------------ Дoбавленo в 16.48:
178.127.5.188 писал(а):
для быстродействия можно сделать так: code_22188.txt

Еще страннее, выдает ошибку
D:\HiAsm_b184\Elements\delphi\code.\hiFTCG_Tools_1A993F0.pas(88) Error: Undeclared identifier: 'glVertex3f'

Может, стоит писать, что вы используете что-то нестандартное
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)