|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- unit uengShaderCodePart;
-
- {$mode objfpc}{$H+}
- {$I uengShaderFile.inc}
-
- interface
-
- uses
- Classes, SysUtils,
- uengShaderPart, uengShaderFileParser, uengShaderGeneratorArgs
-
- {$IFDEF SHADER_FILE_USE_BITSPACE_UTILS}
- , uutlGenerics
- {$ELSE}
- , uengShaderFileGenerics
- {$ENDIF}
- ;
-
- type
- TengShaderCodePart = class(TengShaderPart)
- { Code Loading & Storage }
- protected
- function ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String; virtual;
- public
- function ParseText(const aArgs: TengParseArgs): String;
-
- { Code Generation }
- public
- procedure GenerateCodeIntern(const aArgs: TengShaderGeneratorArgs); virtual;
- end;
- CengShaderCodePart = class of TengShaderCodePart;
- TengShaderCodePartList = specialize TutlSimpleList<TengShaderCodePart>;
-
- implementation
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //TengShaderCodePart////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function TengShaderCodePart.ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String;
- begin
- result := ''; // DUMMY
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function TengShaderCodePart.ParseText(const aArgs: TengParseArgs): String;
- var
- params: TengTokenParameterList;
- begin
- params := TengTokenParameterList.Create(Filename);
- try
- fCol := aArgs.Col;
- fLine := aArgs.Line;
- if (GetTokenName <> '') then
- aArgs.ExtractToken(self, params);
- result := ParseIntern(aArgs, params);
- finally
- FreeAndNil(params);
- end;
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TengShaderCodePart.GenerateCodeIntern(const aArgs: TengShaderGeneratorArgs);
- var
- s: String;
- begin
- s := GetTokenName;
- if (s <> '') then
- aArgs.AddToken(s);
- end;
-
- end.
-
|