Luxophia

Форк
0
/
LUX.GPU.OpenGL.Atom.Engine.pas 
188 строк · 5.3 Кб
1
unit LUX.GPU.OpenGL.Atom.Engine;
2

3
interface //#################################################################### ■
4

5
uses Winapi.OpenGL, Winapi.OpenGLext,
6
     LUX,
7
     LUX.GPU.OpenGL.Atom,
8
     LUX.GPU.OpenGL.Atom.Porter,
9
     LUX.GPU.OpenGL.Atom.Progra;
10

11
type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
12

13
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
14

15
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
16

17
     //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TGLEngine
18

19
     IGLEngine = interface( IGLProgra )
20
     ['{0B2FDEDE-30D3-439B-AC76-E61F9E028CD0}']
21
     {protected}
22
       ///// アクセス
23
       function GetVerBufs :TGLPorterV;
24
       function GetUniBufs :TGLPorterU;
25
       function GetTexturs :TGLPorterT;
26
       function GetStoBufs :TGLPorterS;
27
     {public}
28
       ///// プロパティ
29
       property VerBufs :TGLPorterV read GetVerBufs;
30
       property UniBufs :TGLPorterU read GetUniBufs;
31
       property Texturs :TGLPorterT read GetTexturs;
32
       property StoBufs :TGLPorterS read GetStoBufs;
33
     end;
34

35
     //-------------------------------------------------------------------------
36

37
     TGLEngine = class( TGLProgra, IGLEngine )
38
     private
39
     protected
40
       _VerBufs :TGLPorterV;
41
       _UniBufs :TGLPorterU;
42
       _Texturs :TGLPorterT;
43
       _StoBufs :TGLPorterS;
44
       ///// アクセス
45
       function GetVerBufs :TGLPorterV;
46
       function GetUniBufs :TGLPorterU;
47
       function GetTexturs :TGLPorterT;
48
       function GetStoBufs :TGLPorterS;
49
       ///// イベント
50
       procedure DoOnLinked; override;
51
     public
52
       constructor Create;
53
       destructor Destroy; override;
54
       ///// プロパティ
55
       property VerBufs :TGLPorterV read GetVerBufs;
56
       property UniBufs :TGLPorterU read GetUniBufs;
57
       property Texturs :TGLPorterT read GetTexturs;
58
       property StoBufs :TGLPorterS read GetStoBufs;
59
       ///// メソッド
60
       procedure Attach( const Shader_:IGLShader ); override;
61
       procedure Detach( const Shader_:IGLShader ); override;
62
       procedure Use; override;
63
       procedure Unuse; override;
64
     end;
65

66
//const //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【定数】
67

68
//var //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【変数】
69

70
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
71

72
implementation //############################################################### ■
73

74
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
75

76
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
77

78
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TGLEngine
79

80
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
81

82
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
83

84
/////////////////////////////////////////////////////////////////////// アクセス
85

86
function TGLEngine.GetVerBufs :TGLPorterV;
87
begin
88
     Result := _VerBufs;
89
end;
90

91
function TGLEngine.GetUniBufs :TGLPorterU;
92
begin
93
     Result := _UniBufs;
94
end;
95

96
function TGLEngine.GetTexturs :TGLPorterT;
97
begin
98
     Result := _Texturs;
99
end;
100

101
function TGLEngine.GetStoBufs :TGLPorterS;
102
begin
103
     Result := _StoBufs;
104
end;
105

106
/////////////////////////////////////////////////////////////////////// イベント
107

108
procedure TGLEngine.DoOnLinked;
109
begin
110
     _VerBufs.AddPorts;
111
     _UniBufs.AddPorts;
112
     _Texturs.AddPorts;
113
     _StoBufs.AddPorts;
114

115
     inherited;
116
end;
117

118
/////////////////////////////////////////////////////////////////////// メソッド
119

120
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
121

122
constructor TGLEngine.Create;
123
begin
124
     inherited Create;
125

126
     _VerBufs := TGLPorterV.Create( Self as IGLEngine );
127
     _UniBufs := TGLPorterU.Create( Self as IGLEngine );
128
     _Texturs := TGLPorterT.Create( Self as IGLEngine );
129
     _StoBufs := TGLPorterS.Create( Self as IGLEngine );
130
end;
131

132
destructor TGLEngine.Destroy;
133
begin
134
     _VerBufs.Free;
135
     _UniBufs.Free;
136
     _Texturs.Free;
137
     _StoBufs.Free;
138

139
     inherited;
140
end;
141

142
/////////////////////////////////////////////////////////////////////// メソッド
143

144
procedure TGLEngine.Attach( const Shader_:IGLShader );
145
begin
146
     inherited;
147

148
     Shader_.Attach( Self as IGLEngine );
149
end;
150

151
procedure TGLEngine.Detach( const Shader_:IGLShader );
152
begin
153
     inherited;
154

155
     Shader_.Detach( Self as IGLEngine );
156
end;
157

158
//------------------------------------------------------------------------------
159

160
procedure TGLEngine.Use;
161
begin
162
     inherited;
163

164
     _VerBufs.Use;
165
     _UniBufs.Use;
166
     _Texturs.Use;
167
     _StoBufs.Use;
168
end;
169

170
procedure TGLEngine.Unuse;
171
begin
172
     _VerBufs.Unuse;
173
     _UniBufs.Unuse;
174
     _Texturs.Unuse;
175
     _StoBufs.Unuse;
176

177
     inherited;
178
end;
179

180
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
181

182
//############################################################################## □
183

184
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
185

186
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
187

188
end. //######################################################################### ■

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.