|
@@ -80,12 +80,18 @@ class Checker {
|
|
case Texel:
|
|
case Texel:
|
|
[
|
|
[
|
|
{ args : [ { name: "tex", type: TSampler2D }, { name: "pos", type: ivec2 } ], ret: vec4 },
|
|
{ args : [ { name: "tex", type: TSampler2D }, { name: "pos", type: ivec2 } ], ret: vec4 },
|
|
- { args : [ { name: "tex", type: TSampler2DArray }, { name: "pos", type: ivec3 } ], ret: vec4 }
|
|
|
|
|
|
+ { args : [ { name: "tex", type: TSampler2DArray }, { name: "pos", type: ivec3 } ], ret: vec4 },
|
|
|
|
+ { args : [ { name: "tex", type: TSampler2D }, { name: "pos", type: ivec2 }, { name: "lod", type: TInt } ], ret: vec4 },
|
|
|
|
+ { args : [ { name: "tex", type: TSampler2DArray }, { name: "pos", type: ivec3 }, { name: "lod", type: TInt } ], ret: vec4 },
|
|
];
|
|
];
|
|
- case TexelLod:
|
|
|
|
|
|
+ case TextureSize:
|
|
[
|
|
[
|
|
- { args : [ { name: "tex", type: TSampler2D }, { name: "pos", type: ivec2 }, { name: "lod", type: TInt } ], ret: vec4 },
|
|
|
|
- { args : [ { name: "tex", type: TSampler2DArray }, { name: "pos", type: ivec3 }, { name: "lod", type: TInt } ], ret: vec4 }
|
|
|
|
|
|
+ { args : [ { name: "tex", type: TSampler2D } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "tex", type: TSampler2DArray } ], ret: vec3 },
|
|
|
|
+ { args : [ { name: "tex", type: TSamplerCube } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "tex", type: TSampler2D }, { name: "lod", type: TInt } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "tex", type: TSampler2DArray }, { name: "lod", type: TInt } ], ret: vec3 },
|
|
|
|
+ { args : [ { name: "tex", type: TSamplerCube }, { name: "lod", type: TInt } ], ret: vec2 },
|
|
];
|
|
];
|
|
case ToInt:
|
|
case ToInt:
|
|
[for( t in baseType ) { args : [ { name : "value", type : t } ], ret : TInt } ];
|
|
[for( t in baseType ) { args : [ { name : "value", type : t } ], ret : TInt } ];
|
|
@@ -155,14 +161,22 @@ class Checker {
|
|
{ args : [ { name : "channel", type : TChannel(2) }, { name : "pos", type : ivec2 } ], ret : vec2 },
|
|
{ args : [ { name : "channel", type : TChannel(2) }, { name : "pos", type : ivec2 } ], ret : vec2 },
|
|
{ args : [ { name : "channel", type : TChannel(3) }, { name : "pos", type : ivec2 } ], ret : vec3 },
|
|
{ args : [ { name : "channel", type : TChannel(3) }, { name : "pos", type : ivec2 } ], ret : vec3 },
|
|
{ args : [ { name : "channel", type : TChannel(4) }, { name : "pos", type : ivec2 } ], ret : vec4 },
|
|
{ args : [ { name : "channel", type : TChannel(4) }, { name : "pos", type : ivec2 } ], ret : vec4 },
|
|
- ];
|
|
|
|
- case ChannelFetchLod:
|
|
|
|
- [
|
|
|
|
{ args : [ { name : "channel", type : TChannel(1) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : TFloat },
|
|
{ args : [ { name : "channel", type : TChannel(1) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : TFloat },
|
|
{ args : [ { name : "channel", type : TChannel(2) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : vec2 },
|
|
{ args : [ { name : "channel", type : TChannel(2) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : vec2 },
|
|
{ args : [ { name : "channel", type : TChannel(3) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : vec3 },
|
|
{ args : [ { name : "channel", type : TChannel(3) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : vec3 },
|
|
{ args : [ { name : "channel", type : TChannel(4) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : vec4 },
|
|
{ args : [ { name : "channel", type : TChannel(4) }, { name : "pos", type : ivec2 }, { name : "lod", type : TInt } ], ret : vec4 },
|
|
];
|
|
];
|
|
|
|
+ case ChannelTextureSize:
|
|
|
|
+ [
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(1) } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(2) } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(3) } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(4) } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(1) }, { name : "lod", type : TInt } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(2) }, { name : "lod", type : TInt } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(3) }, { name : "lod", type : TInt } ], ret: vec2 },
|
|
|
|
+ { args : [ { name: "channel", type: TChannel(4) }, { name : "lod", type : TInt } ], ret: vec2 },
|
|
|
|
+ ];
|
|
case ScreenToUv:
|
|
case ScreenToUv:
|
|
[{ args : [{ name : "screenPos", type : vec2 }], ret : vec2 }];
|
|
[{ args : [{ name : "screenPos", type : vec2 }], ret : vec2 }];
|
|
case UvToScreen:
|
|
case UvToScreen:
|
|
@@ -890,10 +904,10 @@ class Checker {
|
|
case ["get", TChannel(_)]: ChannelRead;
|
|
case ["get", TChannel(_)]: ChannelRead;
|
|
case ["getLod", TSampler2D|TSampler2DArray|TSamplerCube]: TextureLod;
|
|
case ["getLod", TSampler2D|TSampler2DArray|TSamplerCube]: TextureLod;
|
|
case ["getLod", TChannel(_)]: ChannelReadLod;
|
|
case ["getLod", TChannel(_)]: ChannelReadLod;
|
|
- case ["fetch", TSampler2D|TSampler2DArray]: Texel;
|
|
|
|
- case ["fetch", TChannel(_)]: ChannelFetch;
|
|
|
|
- case ["fetchLod", TSampler2D|TSampler2DArray]: TexelLod;
|
|
|
|
- case ["fetchLod", TChannel(_)]: ChannelFetchLod;
|
|
|
|
|
|
+ case ["fetch"|"fetchLod", TSampler2D|TSampler2DArray]: Texel;
|
|
|
|
+ case ["fetch"|"fetchLod", TChannel(_)]: ChannelFetch;
|
|
|
|
+ case ["size", TSampler2D|TSampler2DArray|TSamplerCube]: TextureSize;
|
|
|
|
+ case ["size", TChannel(_)]: ChannelTextureSize;
|
|
default: null;
|
|
default: null;
|
|
}
|
|
}
|
|
if( gl != null ) {
|
|
if( gl != null ) {
|