Make(delphi) ver(4.04 build 185) Add(MainForm,15261923,42,63) { Left=20 Top=105 Width=750 Height=500 Caption="Звуковой движок Bass" Position=1 Point(MouseX) Point(MouseY) Point(onResize) Point(Handle) Point(onClose) link(onCreate,16299401:doEvent1,[(82,83)(82,160)]) link(onResize,16131419:doWork1,[(172,90)]) } Add(GL_Main,12986311,196,161) { Color=7500402 AASamples=1 AALevel=2 Point(doVSync) link(onInit,12198675:doInit,[]) link(onViewPort,3410847:doPerspective,[(236,174)(236,209)]) link(Handle,11475298:Var2,[(202,138)(62,138)]) } Add(GL_GTools,771925,196,224) { Point(doClear) Point(doPushMatrix) Point(doPopMatrix) } Add(Hub,1049454,133,224) { OutCount=5 link(onEvent1,771925:doClear,[]) link(onEvent2,771925:doPushMatrix,[]) link(onEvent3,11516276:doTranslate,[(159,244)(159,267)(135,267)(135,300)]) link(onEvent4,771925:doPopMatrix,[(184,251)(184,244)]) link(onEvent5,12986311:doFlip,[(180,258)(180,181)]) } Add(Hub,16299401,91,154) { OutCount=5 link(onEvent1,12578418:In,[]) link(onEvent2,12986311:doInit,[]) link(onEvent3,16131419:doWork2,[]) link(onEvent4,10097153:doStart,[(117,181)(117,208)(76,208)(76,223)]) link(onEvent5,4775189:doData,[]) } Add(GL_GluTools,12198675,259,161) { link(onInit,1101264:doEnabled,[]) } Add(GL_Light,14989894,427,161) { } Add(GL_Options,1101264,301,161) { link(onEvent,5851269:doEnabled,[]) } Add(GL_Options,5851269,343,161) { Flag=1 link(onEvent,5809249:doEnabled,[]) } Add(GL_Options,5809249,385,161) { Flag=2 link(onEvent,14989894:doEnabled,[]) } Add(GL_Perspective,3410847,259,203) { Aspect=1.5 Fovy=70 zFar=2000 } Add(HubEx,16131419,168,168) { link(onEvent,12986311:doViewPort,[]) } Add(Hub,150379,420,294) { link(onEvent1,1289398:doPushMatrix,[]) link(onEvent2,7089115:Channel_Set3DPosition,[(448,307)(448,342)]) } Add(Gl_Translate,2696570,504,294) { link(onTranslate,11591550:doDraw,[]) link(X,13058115:Var2,[(510,208)(734,208)]) link(Y,5088680:Var2,[(517,212)(825,212)]) link(Z,2665095:Var2,[(524,216)(916,216)]) } Add(GL_GTools,1289398,462,294) { Point(doPushMatrix) link(onEvent,2696570:doTranslate,[]) } Add(GL_GTools,12938914,588,294) { Point(doPopMatrix) } Add(DoData,4775189,133,182) { Data=Integer(1) link(onEventData,12986311:doVSync,[]) } Add(Thread,10097153,84,217) { Delay=10 link(onSyncExec,1049454:doEvent1,[]) } Add(Memory,15155282,301,42) { Default=String(Alert.MP3) } Add(MultiElement,3406036,350,294) { @Hint=#5:Сцена| link(onEvent1,150379:doEvent1,[]) AddHint(28,-49,46,13,@Hint) } BEGIN_SDK Add(EditMulti,11031645,21,21) { EventCount=1 WorkCount=1 Width=503 Height=130 link(doWork1,12669242:doPushMatrix,[(31,27)(31,48)]) } Add(GL_Disk,8098731,294,42) { OutRadius=40 Slices=16 Stacks=8 link(onDraw,14125459:doPopMatrix,[]) } Add(GL_PolygonMode,10002546,126,42) { Side=2 Mode=1 link(onPolygonMode,688787:doTranslate,[]) } Add(GL_GTools,12669242,42,42) { Point(doPushMatrix) link(onEvent,6173120:doDisabled,[(79,48)(79,55)]) } Add(GL_GTools,14125459,336,42) { Point(doPopMatrix) link(onEvent,11028887:doPolygonMode,[]) } Add(GL_PolygonMode,11028887,378,42) { Side=2 Mode=2 link(onPolygonMode,12765604:doEnabled,[]) } Add(GL_Rotate,8345851,210,42) { Angle=90 X=1 link(onRotate,5680430:doColor,[]) } Add(Gl_Translate,688787,168,42) { Y=-2 link(onTranslate,8345851:doRotate,[]) } Add(GL_Options,6173120,84,42) { link(onEvent,10002546:doPolygonMode,[]) } Add(GL_Options,12765604,420,42) { link(onEvent,12749057:doDraw,[]) } Add(GL_Color,5680430,252,42) { Color=65280 link(onColor,8098731:doDraw,[]) } Add(Gl_Axis,12749057,462,42) { link(onDraw,11031645:onEvent1,[(502,48)(502,27)]) } END_SDK Add(Gl_Translate,11516276,203,294) { Z=-5 link(onTranslate,1094341:doRotate,[]) } Add(GL_Sphere,11591550,546,294) { Radius=0.3 Slices=50 Stacks=50 link(onDraw,12938914:doPopMatrix,[]) } Add(LineBreak,11426125,189,84) { Caption="Init" link(Out,16386669:doInit,[]) Primary=[12578418,-56,70] } Add(BASS_Init,16386669,259,84) { Flags=6 link(onInit,5287862:doCreate,[]) link(Handle,11475298:Var3,[(279,72)(150,72)(150,117)]) } Add(BASS_StreamCreateFile,5287862,301,84) { Flags=44 Name="bass" link(onCreate,2900215:doPlay,[]) link(FileName,15155282:Value,[]) } Add(BASS_ChannelPlay,2900215,343,84) { Channel="bass" } Add(GetDataEx,11475298,56,112) { link(Data,15261923:Handle,[]) } Add(InlineCode,7089115,644,336) { @Hint=#40:Функции для работы со звуковыми каналами| WorkPoints=#21:Channel_Set3DPosition|19:Channel_SetVelocity|0:| DataPoints=#2:Px|2:Py|2:Pz|2:Vx|2:Vy|2:Vz| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|22:uses Share,Debug,Bass;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|22: pos: BASS_3DVECTOR;|22: vel: BASS_3DVECTOR;|24: front: BASS_3DVECTOR;|22: top: BASS_3DVECTOR;|3: |16: Px:THI_Event;|16: Py:THI_Event;|16: Pz:THI_Event;|16: Vx:THI_Event;|16: Vy:THI_Event;|16: Vz:THI_Event;|63: procedure Channel_Set3DPosition(var Data:TData; index:word);|61: procedure Channel_SetVelocity(var Data:TData; index:word);|5: end;|0:|14:implementation|0:|44:procedure THiAsmClass.Channel_Set3DPosition;|6: begin|31: pos.x := ReadReal(Data,Px,0);|31: pos.y := ReadReal(Data,Py,0);|31: pos.z := ReadReal(Data,Pz,0);|40: BASS_Set3DPosition(pos,vel,front,top);|15: BASS_Apply3D;|5: end;|1: |42:procedure THiAsmClass.Channel_SetVelocity;|6: begin|31: vel.x := ReadReal(Data,Vx,0);|31: vel.y := ReadReal(Data,Vy,0);|31: vel.z := ReadReal(Data,Vz,0);|40: BASS_Set3DPosition(pos,vel,front,top);|15: BASS_Apply3D;|5: end;|3: |4:end.| link(Px,13058115:Var1,[(650,180)]) link(Py,5088680:Var1,[(657,187)]) link(Pz,2665095:Var1,[(664,194)]) } Add(GL_Rotate,1094341,252,294) { Angle=45 X=1 link(onRotate,11929674:doRotate,[]) } Add(GL_Rotate,11929674,301,294) { Angle=180 Y=1 link(onRotate,3406036:doWork1,[]) } Add(TrackBar,16536880,686,105) { Left=20 Top=228 Width=357 Height=25 Align=4 Max=1000 Min=-1000 ThumbLength=32 link(onPosition,14676036:doCalc,[]) } Add(TrackBar,8012226,777,105) { Left=30 Top=8 Width=32 Height=205 Align=1 Max=1000 Min=-1000 Kind=1 ThumbLength=32 link(onPosition,16595427:doCalc,[]) } Add(TrackBar,104543,868,105) { Left=310 Top=8 Width=32 Height=205 Align=3 Max=1000 Min=-1000 Kind=1 ThumbLength=32 link(onPosition,15078579:doCalc,[]) } Add(FastMathParse,14676036,728,105) { DataCount=1 MathStr="0-(%1 / 100)" } Add(FastMathParse,16595427,819,105) { DataCount=1 MathStr="0-(%1 / 100)" } Add(FastMathParse,15078579,910,105) { DataCount=1 MathStr="0-(%1 / 100)" } Add(GetDataEx,13058115,728,175) { link(Data,14676036:Result,[]) } Add(GetDataEx,5088680,819,182) { link(Data,16595427:Result,[]) } Add(GetDataEx,2665095,910,189) { link(Data,15078579:Result,[]) }