1{ Parsed from SceneKit.framework SCNShadable.h }
2
3
4{$ifdef TYPES}
5type
6  SCNProgramPtr = ^SCNProgram;
7  SCNShadableProtocolPtr = ^SCNShadableProtocol;
8  SCNProgramDelegateProtocolPtr = ^SCNProgramDelegateProtocol;
9{$endif}
10
11{$ifdef TYPES}
12type
13  SCNBindingBlock = OpaqueCBlock;
14{$endif}
15
16{$ifdef PROTOCOLS}
17
18type
19  SCNShadableProtocol = objcprotocol external name 'SCNShadable' (NSObjectProtocol)
20  optional
21    procedure setShaderModifiers(newValue: NSDictionary); message 'setShaderModifiers:';
22    function shaderModifiers: NSDictionary; message 'shaderModifiers';
23    procedure setProgram(newValue: SCNProgram); message 'setProgram:';
24    function program_: SCNProgram; message 'program';
25    procedure handleBindingOfSymbol_usingBlock (symbol: NSString; block: SCNBindingBlock); message 'handleBindingOfSymbol:usingBlock:'; { available in 10_9, 8_0 }
26    procedure handleUnbindingOfSymbol_usingBlock (symbol: NSString; block: SCNBindingBlock); message 'handleUnbindingOfSymbol:usingBlock:'; { available in 10_9, 8_0 }
27  end;
28{$endif}
29
30{$ifdef EXTERNAL_SYMBOLS}
31var
32  SCNProgramMappingChannelKey: NSString; cvar; external;
33{$endif}
34
35{$ifdef CLASSES}
36
37type
38  SCNProgram = objcclass external (NSObject, NSCopyingProtocol, NSSecureCodingProtocol)
39  private
40    _reserved: id;
41  public
42    class function program_: instancetype; message 'program';
43    procedure setVertexShader(newValue: NSString); message 'setVertexShader:';
44    function vertexShader: NSString; message 'vertexShader';
45    procedure setFragmentShader(newValue: NSString); message 'setFragmentShader:';
46    function fragmentShader: NSString; message 'fragmentShader';
47    procedure setTessellationControlShader(newValue: NSString); message 'setTessellationControlShader:';
48    function tessellationControlShader: NSString; message 'tessellationControlShader';
49    procedure setTessellationEvaluationShader(newValue: NSString); message 'setTessellationEvaluationShader:';
50    function tessellationEvaluationShader: NSString; message 'tessellationEvaluationShader';
51    procedure setGeometryShader(newValue: NSString); message 'setGeometryShader:';
52    function geometryShader: NSString; message 'geometryShader';
53    procedure setOpaque(newValue: ObjCBOOL); message 'setOpaque:';
54    function isOpaque: ObjCBOOL; message 'isOpaque';
55    procedure setSemantic_forSymbol_options (semantic: NSString; symbol: NSString; options: NSDictionary); message 'setSemantic:forSymbol:options:';
56    function semanticForSymbol (symbol: NSString): NSString; message 'semanticForSymbol:';
57    procedure setDelegate(newValue: SCNProgramDelegateProtocol); message 'setDelegate:';
58    function delegate: SCNProgramDelegateProtocol; message 'delegate';
59
60    { Adopted protocols }
61    function copyWithZone (zone: NSZonePtr): id; message 'copyWithZone:';
62    procedure encodeWithCoder (aCoder: NSCoder); message 'encodeWithCoder:';
63    function initWithCoder (aDecoder: NSCoder): id; message 'initWithCoder:';
64    class function supportsSecureCoding: ObjCBOOL; message 'supportsSecureCoding';
65  end;
66{$endif}
67
68{$ifdef PROTOCOLS}
69
70type
71  SCNProgramDelegateProtocol = objcprotocol external name 'SCNProgramDelegate' (NSObjectProtocol)
72  optional
73    function program_bindValueForSymbol_atLocation_programID_renderer (program_: SCNProgram; symbol: NSString; location: cuint; programID: cuint; renderer: SCNRenderer): ObjCBOOL; message 'program:bindValueForSymbol:atLocation:programID:renderer:'; deprecated 'in 10_8, 10_10, NA, NA';
74    procedure program_unbindValueForSymbol_atLocation_programID_renderer (program_: SCNProgram; symbol: NSString; location: cuint; programID: cuint; renderer: SCNRenderer); message 'program:unbindValueForSymbol:atLocation:programID:renderer:'; deprecated 'in 10_8, 10_10, NA, NA';
75    procedure program_handleError (program_: SCNProgram; error: NSError); message 'program:handleError:';
76    function programIsOpaque (program_: SCNProgram): ObjCBOOL; message 'programIsOpaque:'; deprecated 'in 10_8, 10_10, NA, NA';
77  end;
78{$endif}
79
80{$ifdef EXTERNAL_SYMBOLS}
81var
82  SCNShaderModifierEntryPointGeometry: NSString { available in 10_9, 8_0 }; cvar; external;
83  SCNShaderModifierEntryPointSurface: NSString { available in 10_9, 8_0 }; cvar; external;
84  SCNShaderModifierEntryPointLightingModel: NSString { available in 10_9, 8_0 }; cvar; external;
85  SCNShaderModifierEntryPointFragment: NSString { available in 10_9, 8_0 }; cvar; external;
86{$endif}
87
88