Вверх ↑
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
#1: 2010-06-18 20:50:31 ЛС | профиль | цитата
Подскажите, почему эта схема не работает, полюбому должна.


Add(MainForm,15261923,77,35)
{
Left=20
Top=105
Width=795
Height=572
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
link(onCreate,16299401:doEvent1,[(135,76)(135,181)])
link(onResize,14551396:doWork1,[(207,69)])
}
Add(GL_Main,12986311,217,175)
{
Color=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(272,188)(272,230)])
link(Handle,15261923:Handle,[(223,148)(83,148)])
}
Add(Timer,9506849,105,259)
{
Interval=33
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,217,259)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,154,259)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,10714674:doWork1,[(231,279)(231,132)])
link(onEvent4,771925:doPopMatrix,[(205,286)(205,279)])
link(onEvent5,12986311:doFlip,[(201,293)(201,195)])
}
Add(Hub,16299401,147,175)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,14551396:doWork2,[])
link(onEvent3,9506849:doTimer,[(189,195)(189,233)(95,233)(95,265)])
}
Add(MultiElement,10714674,287,126)
{
link(onEvent1,10036663:doDraw,[])
link(Data1,15261923:MouseX,[(293,110)(90,110)])
link(Data2,15261923:MouseY,[(300,104)(97,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,[(41,26)(9,26)])
}
Add(GL_Rotate,8079493,112,49)
{
X=1
link(onRotate,4359962:onEvent1,[(189,55)(189,9)])
link(Angle,4359962:Data2,[(118,26)(16,26)])
}
END_SDK
Add(GL_VertexTexture,8410006,707,266)
{
T=1
link(onTexCoord,7164515:doVertex,[])
}
Add(GL_Options,10513853,574,175)
{
Flag=1
}
Add(GL_Vertex3D,7164515,756,266)
{
Y=1
link(onVertex,16226316:doEnd,[])
}
Add(GL_Perspective,3410847,280,224)
{
Fovy=20
}
Add(GL_Options,4378486,476,175)
{
Flag=3
link(onEvent,14989894:doEnabled,[])
}
Add(GL_Options,5809249,427,175)
{
Flag=2
link(onEvent,4378486:doEnabled,[])
}
Add(GL_VertexTexture,4612391,609,266)
{
S=1
T=1
link(onTexCoord,10009330:doVertex,[])
}
Add(GL_Vertex3D,10009330,658,266)
{
X=1
Y=1
link(onVertex,8410006:doTexCoord,[])
}
Add(GL_VertexTexture,4047880,511,266)
{
S=1
link(onTexCoord,14063594:doVertex,[])
}
Add(Gl_Axis,10036663,343,126)
{
TitleScale=0.5
link(onDraw,1397646:doBegin,[(385,132)(385,212)(354,212)(354,272)])
}
Add(HubEx,14551396,203,182)
{
link(onEvent,12986311:doViewPort,[])
}
Add(GL_GluTools,12198675,280,175)
{
Texture=0
link(onInit,1101264:doEnabled,[])
}
Add(GL_Light,14989894,525,175)
{
link(onEnabled,10513853:doEnabled,[])
}
Add(GL_Options,1101264,329,175)
{
link(onEvent,5851269:doEnabled,[])
}
Add(GL_Options,5851269,378,175)
{
Flag=10
link(onEvent,5809249:doEnabled,[])
}
Add(GL_Vertex3D,14063594,560,266)
{
X=1
link(onVertex,4612391:doTexCoord,[])
}
Add(GL_Texture,14234746,658,175)
{
Index=1
link(onCreate,14234746:doSet,[(700,181)(700,165)(648,165)(648,188)])
link(Bitmap,5611956:ImageBitmap,[(664,145)(719,145)(719,478)(818,478)])
}
Add(GL_VertexTexture,5832741,413,266)
{
link(onTexCoord,13234197:doVertex,[])
}
Add(Gl_End,16226316,805,266)
{
}
Add(Gl_Begin,1397646,364,266)
{
BlockType=7
link(onBegin,5832741:doTexCoord,[])
}
Add(GL_Vertex3D,13234197,462,266)
{
link(onVertex,4047880:doTexCoord,[])
}
Add(MediaPlayer,98238,448,469)
{
VideoScale=1
link(Handle,13526162:Var3,[(461,450)])
}
Add(Hub,58639,196,399)
{
OutCount=3
link(onEvent1,61204:doData,[])
link(onEvent2,98238:doPlay,[(254,412)(254,475)])
link(onEvent3,28615:doData,[(238,419)(238,538)])
}
Add(ODialog,20862,140,399)
{
link(onExecute,58639:doEvent1,[])
}
Add(WinEnum,53158,336,399)
{
link(onEndEnum,13047034:doWork1,[(394,412)(394,405)])
}
Add(DoData,61204,280,399)
{
Data=String(Program Manager)
link(onEventData,53158:doFind,[(324,405)(324,412)])
}
Add(DoData,94938,294,490)
{
link(onEventData,75508:doPosition,[])
link(Data,98238:Position,[(300,482)(423,482)(423,511)(454,511)])
}
Add(Button,18742,91,399)
{
Left=165
Top=15
Font=[Arial,8,0,0,1]
Caption="Open"
link(onClick,20862:doExecute,[])
}
Add(Timer,56813,252,490)
{
link(onTimer,94938:doData,[])
}
Add(DoData,28615,287,532)
{
link(onEventData,75508:doMax,[(348,538)(348,503)])
link(Data,98238:Length,[(293,526)(461,526)])
}
Add(ScrollBar,75508,378,490)
{
Left=20
Top=50
Width=340
Height=20
Color=-16777200
Max=60000
ScrollMode=1
Point(doMax)
link(onPosition,98238:doPosition,[])
}
Add(ChildForm,13047034,420,399)
{
}
BEGIN_SDK
Add(EditMulti,415993,21,21)
{
WorkCount=1
VarCount=1
link(doWork1,15062958:doVisible,[(39,27)(39,167)])
link(Var1,15062958:Handle,[(27,196)(160,196)])
}
Add(MainForm,15062958,154,133)
{
Left=35
Top=105
Caption="Дочерняя форма"
BorderStyle=0
Point(doVisible)
Point(Handle)
}
END_SDK
Add(ScreenShort,5581888,756,441)
{
link(onCapture,5611956:doLoad,[])
link(Handle,13526162:Var1,[(762,394)(454,394)])
}
Add(Image,5611956,812,441)
{
Left=535
Top=400
Width=200
Height=105
ViewStyle=1
}
Add(Timer,8425737,665,441)
{
Interval=30
link(onTimer,15481516:doEvent1,[])
}
Add(InfoTip,13685435,21,21)
{
Info=#8:Текстура|
Width=855
Height=298
}
Add(InfoTip,16483680,49,371)
{
Info=#11:Медиа-плеер|
Width=526
Height=200
}
Add(InfoTip,6261754,686,413)
{
Info=#12:Сканер формы|
Width=211
Height=109
}
Add(GetDataEx,13526162,448,445)
{
Angle=3
link(Data,13047034:Var1,[(426,450)])
}
Add(Hub,15481516,721,441)
{
link(onEvent1,5581888:doCapture,[])
link(onEvent2,14234746:doCreate,[(747,454)(747,369)(646,369)(646,181)])
}


Исправлена.

------------ Дoбавленo в 21.53:
У моей проги будет 3D-шный интерфейс. И для создания музыки под видео-продакшн, надо видеть окошко с видео.
И сильно неудобно выносить его в винду, надо внутри OpenGL сделать.
карма: 0

0
Ответов: 2438
Рейтинг: 693
#2: 2010-06-18 20:56:49 ЛС | профиль | цитата
Не должна это схема тебе ничего. Ты даже текстуру в память видеокарты не загрузил. И вообще мне кажется это извращение.
карма: 11

0
Ответов: 1429
Рейтинг: 50
#3: 2010-06-18 23:48:13 ЛС | профиль | цитата
Текстура грузится в память под index 1 (это примеры из туториалов, пример не влазил в форум, я урезал и убил одну связь, восстановил)
Я понимаю что это изврат, но надо было с чего-то начать.

Может кто-то из знатоков знает способ "напрямую" лить видео кадрики на текстурный кубик, не сканируя форму.

Добавил потеряную свяь, но это всеравно не суть проблемы.

------------ Дoбавленo в 23.48:
Надо было другой тип текстуры ставить.

Работающий вариант, но как-то все с трудом.. Надо совершенствовать..



Add(MainForm,15261923,91,35)
{
Left=20
Top=105
Width=795
Height=572
Point(MouseX)
Point(MouseY)
Point(onResize)
Point(Handle)
link(onCreate,16299401:doEvent1,[(149,76)(149,181)])
link(onResize,14551396:doWork1,[(221,69)])
}
Add(GL_Main,12986311,231,175)
{
Color=0
link(onInit,12198675:doInit,[])
link(onViewPort,3410847:doPerspective,[(286,188)(286,230)])
link(Handle,15261923:Handle,[(237,148)(97,148)])
}
Add(Timer,9506849,119,259)
{
Interval=3
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,231,259)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,168,259)
{
OutCount=6
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,10714674:doWork1,[(245,279)(245,132)])
link(onEvent4,771925:doPopMatrix,[(219,286)(219,279)])
link(onEvent5,12986311:doFlip,[(215,293)(215,195)])
}
Add(Hub,16299401,161,175)
{
OutCount=3
link(onEvent1,12986311:doInit,[])
link(onEvent2,14551396:doWork2,[])
link(onEvent3,9506849:doTimer,[(203,195)(203,233)(109,233)(109,265)])
}
Add(MultiElement,10714674,301,126)
{
link(onEvent1,10036663:doDraw,[])
link(Data1,15261923:MouseX,[(307,110)(104,110)])
link(Data2,15261923:MouseY,[(314,104)(111,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,[(41,26)(9,26)])
}
Add(GL_Rotate,8079493,112,49)
{
X=1
link(onRotate,4359962:onEvent1,[(189,55)(189,9)])
link(Angle,4359962:Data2,[(118,26)(16,26)])
}
END_SDK
Add(GL_VertexTexture,8410006,721,245)
{
T=1
link(onTexCoord,7164515:doVertex,[])
}
Add(GL_Options,10513853,588,175)
{
Flag=1
}
Add(GL_Vertex3D,7164515,770,245)
{
Y=1
link(onVertex,16226316:doEnd,[])
}
Add(GL_Perspective,3410847,294,224)
{
Fovy=20
}
Add(GL_Options,4378486,490,175)
{
Flag=3
link(onEvent,14989894:doEnabled,[])
}
Add(GL_Options,5809249,441,175)
{
Flag=2
link(onEvent,4378486:doEnabled,[])
}
Add(GL_VertexTexture,4612391,623,245)
{
S=1
T=1
link(onTexCoord,10009330:doVertex,[])
}
Add(GL_Vertex3D,10009330,672,245)
{
X=1
Y=1
link(onVertex,8410006:doTexCoord,[])
}
Add(GL_VertexTexture,4047880,525,245)
{
S=1
link(onTexCoord,14063594:doVertex,[])
}
Add(Gl_Axis,10036663,357,126)
{
TitleScale=0.5
link(onDraw,1397646:doBegin,[(399,132)(399,212)(368,212)(368,251)])
}
Add(HubEx,14551396,217,182)
{
link(onEvent,12986311:doViewPort,[])
}
Add(GL_GluTools,12198675,294,175)
{
Texture=0
link(onInit,1101264:doEnabled,[])
}
Add(GL_Light,14989894,539,175)
{
link(onEnabled,10513853:doEnabled,[])
}
Add(GL_Options,1101264,343,175)
{
link(onEvent,5851269:doEnabled,[])
}
Add(GL_Options,5851269,392,175)
{
Flag=10
link(onEvent,5809249:doEnabled,[])
}
Add(GL_Vertex3D,14063594,574,245)
{
X=1
link(onVertex,4612391:doTexCoord,[])
}
Add(GL_VertexTexture,5832741,427,245)
{
link(onTexCoord,13234197:doVertex,[])
}
Add(Gl_End,16226316,819,245)
{
}
Add(Gl_Begin,1397646,378,245)
{
BlockType=7
link(onBegin,5832741:doTexCoord,[])
}
Add(GL_Vertex3D,13234197,476,245)
{
link(onVertex,4047880:doTexCoord,[])
}
Add(MediaPlayer,98238,462,469)
{
VideoScale=1
link(Handle,13526162:Var3,[(475,450)])
}
Add(Hub,58639,210,399)
{
OutCount=3
link(onEvent1,61204:doData,[])
link(onEvent2,98238:doPlay,[(268,412)(268,475)])
link(onEvent3,28615:doData,[(252,419)(252,538)])
}
Add(ODialog,20862,154,399)
{
link(onExecute,58639:doEvent1,[])
}
Add(WinEnum,53158,350,399)
{
link(onEndEnum,13047034:doWork1,[(408,412)(408,405)])
}
Add(DoData,61204,294,399)
{
Data=String(Program Manager)
link(onEventData,53158:doFind,[(338,405)(338,412)])
}
Add(DoData,94938,308,490)
{
link(onEventData,75508:doPosition,[])
link(Data,98238:Position,[(314,482)(437,482)(437,511)(468,511)])
}
Add(Button,18742,105,399)
{
Left=165
Top=15
Font=[Arial,8,0,0,1]
Caption="Open"
link(onClick,20862:doExecute,[])
}
Add(Timer,56813,266,490)
{
link(onTimer,94938:doData,[])
}
Add(DoData,28615,301,532)
{
link(onEventData,75508:doMax,[(362,538)(362,503)])
link(Data,98238:Length,[(307,526)(475,526)])
}
Add(ScrollBar,75508,392,490)
{
Left=20
Top=50
Width=340
Height=20
Color=-16777200
Max=60000
ScrollMode=1
Point(doMax)
link(onPosition,98238:doPosition,[])
}
Add(ChildForm,13047034,434,399)
{
}
BEGIN_SDK
Add(EditMulti,415993,21,21)
{
WorkCount=1
VarCount=1
link(doWork1,15062958:doVisible,[(39,27)(39,167)])
link(Var1,15062958:Handle,[(27,196)(160,196)])
}
Add(MainForm,15062958,154,133)
{
Left=35
Top=105
Caption="Дочерняя форма"
BorderStyle=0
Point(doVisible)
Point(Handle)
}
END_SDK
Add(ScreenShort,5581888,770,441)
{
link(onCapture,12481041:doGenTextures,[])
link(Handle,13526162:Var1,[(776,394)(468,394)])
}
Add(Timer,8425737,714,441)
{
Interval=50
link(onTimer,5581888:doCapture,[])
}
Add(InfoTip,13685435,35,21)
{
Info=#8:Текстура|
Width=855
Height=298
}
Add(InfoTip,16483680,63,371)
{
Info=#11:Медиа-плеер|
Width=526
Height=200
}
Add(InfoTip,6261754,700,413)
{
Info=#12:Сканер формы|
Width=211
Height=109
}
Add(GetDataEx,13526162,462,445)
{
Angle=3
link(Data,13047034:Var1,[(440,450)])
}
Add(GL_GenTextures,12481041,826,441)
{
TexFilterMAG=1
TexFilterMIN=1
}


карма: 0

0
файлы: 1code_18926.txt [5.4KB] [173]
Ответов: 2438
Рейтинг: 693
#4: 2010-06-18 23:59:34 ЛС | профиль | цитата
login, думаю что ничего не выйдет: code_18930.txt хотя
карма: 11

1
файлы: 1code_18930.txt [4.5KB] [211]
Голосовали:login
Ответов: 1429
Рейтинг: 50
#5: 2010-06-19 00:16:27 ЛС | профиль | цитата
Да, а теперь надо убирать сканер из цепи. Он тормозит всю схему..
Вот так оно должно "летать" быстро работать, но там какая-то проблема с преобразованием картинки в формат текстуры.

code_18931.txt

Поэтому не работает.
Варианты или размер не тот, или надо конвертить в двоичные данные картинку и выдавать стримом на текстуру, вобщем в преобразовании дело.
карма: 0

0
файлы: 1code_18931.txt [4.7KB] [165]
Ответов: 1161
Рейтинг: 160
#6: 2010-06-19 00:27:48 ЛС | профиль | цитата
login, на картинке в твоей схеме орисовывается видео, но:
1. Это не значит, что на точке ImageBitmap будет изображение (а там ничего не будет);
2. Даже если использовать ScreenShort, он будет брать скрин не со всех видео.
карма: 0

0
Ответов: 1429
Рейтинг: 50
#7: 2010-06-19 00:40:37 ЛС | профиль | цитата
1. Это не значит, что на точке ImageBitmap будет изображение (а там ничего не будет);

А для чего тогда эта точка?

2. Даже если использовать ScreenShort, он будет брать скрин не со всех видео.

Хотябы с половины отображалось и хватит.
карма: 0

0
Ответов: 1161
Рейтинг: 160
#8: 2010-06-19 00:54:40 ЛС | профиль | цитата
login писал(а):
А для чего тогда эта точка?

Эта точка используется, причем часто. Но здесь она особого эффекта не принесет.
Как я понял при воспроизведении видео форма перерисовывается и все объекты OpenGL стираются с нее. Оптимальным я здесь считаю пример sla8'ы с использованием дочерней формы, хотя идея эта в общем какая-то бредовая...
карма: 0

0
Ответов: 1429
Рейтинг: 50
#9: 2010-06-19 20:03:20 ЛС | профиль | цитата
Идеал, это точка "идентификатора" вывода видео прямо на текстурном квадратике
Зачем сканировать форму? Почему нельзя выводить прямо в видеопамять?

С точки зрения функциональности софтины - идея супер. Это реализация такая бредовая.
------------ Дoбавленo в 20.03:
http://hi-asm.blogspot.com
Это то, что надо! Жаль я сразу не нашел этот ресурс.
Автору респект!
карма: 0

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