HLSL: phase 3b: Texture methods remember and return vector size.
Also makes a (correct) test change for global -> temp vars.
This commit is contained in:
parent
4f2da27aec
commit
8b0227ced9
27 changed files with 800 additions and 541 deletions
|
|
@ -78,6 +78,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||
bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler
|
||||
bool sampler : 1; // true means a pure sampler, other fields should be clear()
|
||||
bool external : 1; // GL_OES_EGL_image_external
|
||||
unsigned int vectorSize : 3; // return vector size. TODO: support arbitrary types.
|
||||
|
||||
bool isImage() const { return image && dim != EsdSubpass; }
|
||||
bool isSubpass() const { return dim == EsdSubpass; }
|
||||
|
|
@ -99,6 +100,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||
combined = false;
|
||||
sampler = false;
|
||||
external = false;
|
||||
vectorSize = 4;
|
||||
}
|
||||
|
||||
// make a combined sampler and texture
|
||||
|
|
@ -164,7 +166,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
|
|||
image == right.image &&
|
||||
combined == right.combined &&
|
||||
sampler == right.sampler &&
|
||||
external == right.external;
|
||||
external == right.external &&
|
||||
vectorSize == right.vectorSize;
|
||||
}
|
||||
|
||||
bool operator!=(const TSampler& right) const
|
||||
|
|
@ -823,53 +826,6 @@ public:
|
|||
default: return "none";
|
||||
}
|
||||
}
|
||||
static int getLayoutComponentCount(TLayoutFormat f)
|
||||
{
|
||||
switch (f) {
|
||||
case ElfRgba32f: return 4;
|
||||
case ElfRgba16f: return 4;
|
||||
case ElfRg32f: return 2;
|
||||
case ElfRg16f: return 2;
|
||||
case ElfR11fG11fB10f: return 3;
|
||||
case ElfR32f: return 1;
|
||||
case ElfR16f: return 1;
|
||||
case ElfRgba16: return 4;
|
||||
case ElfRgb10A2: return 4;
|
||||
case ElfRgba8: return 4;
|
||||
case ElfRg16: return 2;
|
||||
case ElfRg8: return 2;
|
||||
case ElfR16: return 1;
|
||||
case ElfR8: return 1;
|
||||
case ElfRgba16Snorm: return 4;
|
||||
case ElfRgba8Snorm: return 4;
|
||||
case ElfRg16Snorm: return 2;
|
||||
case ElfRg8Snorm: return 2;
|
||||
case ElfR16Snorm: return 1;
|
||||
case ElfR8Snorm: return 1;
|
||||
|
||||
case ElfRgba32i: return 4;
|
||||
case ElfRgba16i: return 4;
|
||||
case ElfRgba8i: return 4;
|
||||
case ElfRg32i: return 2;
|
||||
case ElfRg16i: return 2;
|
||||
case ElfRg8i: return 2;
|
||||
case ElfR32i: return 1;
|
||||
case ElfR16i: return 1;
|
||||
case ElfR8i: return 1;
|
||||
|
||||
case ElfRgba32ui: return 4;
|
||||
case ElfRgba16ui: return 4;
|
||||
case ElfRgba8ui: return 4;
|
||||
case ElfRg32ui: return 2;
|
||||
case ElfRg16ui: return 2;
|
||||
case ElfRgb10a2ui: return 4;
|
||||
case ElfRg8ui: return 2;
|
||||
case ElfR32ui: return 1;
|
||||
case ElfR16ui: return 1;
|
||||
case ElfR8ui: return 1;
|
||||
default: return 4;
|
||||
}
|
||||
}
|
||||
static const char* getLayoutDepthString(TLayoutDepth d)
|
||||
{
|
||||
switch (d) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue