Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
angle
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
angle
Commits
b2f3d05c
Commit
b2f3d05c
authored
Aug 13, 2013
by
Geoff Lang
Committed by
Geoff Lang
Aug 27, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replaced the custom component type and SRGB bool with GLenums.
TRAC #23474 Author: Geoff Lang Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
parent
9060a4e0
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
189 additions
and
252 deletions
+189
-252
formatutils.cpp
src/libGLESv2/formatutils.cpp
+162
-228
formatutils.h
src/libGLESv2/formatutils.h
+2
-7
Blit11.cpp
src/libGLESv2/renderer/Blit11.cpp
+1
-1
Renderer11.cpp
src/libGLESv2/renderer/Renderer11.cpp
+6
-2
validationES.cpp
src/libGLESv2/validationES.cpp
+16
-12
validationES3.cpp
src/libGLESv2/validationES3.cpp
+2
-2
No files found.
src/libGLESv2/formatutils.cpp
View file @
b2f3d05c
...
@@ -503,16 +503,6 @@ bool UnimplementedSupport(const objectTypeA*, const objectTypeB*)
...
@@ -503,16 +503,6 @@ bool UnimplementedSupport(const objectTypeA*, const objectTypeB*)
return
false
;
return
false
;
}
}
enum
InternalFormatStorageType
{
Unknown
,
NormalizedFixedPoint
,
FloatingPoint
,
SignedInteger
,
UnsignedInteger
,
Compressed
,
};
struct
InternalFormatInfo
struct
InternalFormatInfo
{
{
GLuint
mRedBits
;
GLuint
mRedBits
;
...
@@ -537,9 +527,10 @@ struct InternalFormatInfo
...
@@ -537,9 +527,10 @@ struct InternalFormatInfo
GLenum
mFormat
;
GLenum
mFormat
;
GLenum
mType
;
GLenum
mType
;
InternalFormatStorageType
mStorageType
;
GLenum
mComponentType
;
GLenum
mColorEncoding
;
bool
mIs
SRGB
;
bool
mIs
Compressed
;
ContextRendererSupportCheckFunction
mIsColorRenderable
;
ContextRendererSupportCheckFunction
mIsColorRenderable
;
ContextRendererSupportCheckFunction
mIsDepthRenderable
;
ContextRendererSupportCheckFunction
mIsDepthRenderable
;
...
@@ -550,8 +541,9 @@ struct InternalFormatInfo
...
@@ -550,8 +541,9 @@ struct InternalFormatInfo
InternalFormatInfo
()
:
mRedBits
(
0
),
mGreenBits
(
0
),
mBlueBits
(
0
),
mLuminanceBits
(
0
),
mAlphaBits
(
0
),
mSharedBits
(
0
),
mDepthBits
(
0
),
mStencilBits
(
0
),
InternalFormatInfo
()
:
mRedBits
(
0
),
mGreenBits
(
0
),
mBlueBits
(
0
),
mLuminanceBits
(
0
),
mAlphaBits
(
0
),
mSharedBits
(
0
),
mDepthBits
(
0
),
mStencilBits
(
0
),
mPixelBits
(
0
),
mComponentCount
(
0
),
mCompressedBlockWidth
(
0
),
mCompressedBlockHeight
(
0
),
mFormat
(
GL_NONE
),
mType
(
GL_NONE
),
mPixelBits
(
0
),
mComponentCount
(
0
),
mCompressedBlockWidth
(
0
),
mCompressedBlockHeight
(
0
),
mFormat
(
GL_NONE
),
mType
(
GL_NONE
),
mStorageType
(
Unknown
),
mIsSRGB
(
false
),
mIsColorRenderable
(
NeverSupported
),
mIsDepthRenderable
(
NeverSupported
),
mIsStencilRenderable
(
NeverSupported
),
mComponentType
(
GL_NONE
),
mColorEncoding
(
GL_NONE
),
mIsCompressed
(
false
),
mIsColorRenderable
(
NeverSupported
),
mIsTextureFilterable
(
NeverSupported
),
mSupportFunction
(
NeverSupported
)
mIsDepthRenderable
(
NeverSupported
),
mIsStencilRenderable
(
NeverSupported
),
mIsTextureFilterable
(
NeverSupported
),
mSupportFunction
(
NeverSupported
)
{
{
}
}
...
@@ -568,7 +560,7 @@ struct InternalFormatInfo
...
@@ -568,7 +560,7 @@ struct InternalFormatInfo
}
}
static
InternalFormatInfo
RGBAFormat
(
GLuint
red
,
GLuint
green
,
GLuint
blue
,
GLuint
alpha
,
GLuint
shared
,
static
InternalFormatInfo
RGBAFormat
(
GLuint
red
,
GLuint
green
,
GLuint
blue
,
GLuint
alpha
,
GLuint
shared
,
GLenum
format
,
GLenum
type
,
InternalFormatStorageType
storage
Type
,
bool
srgb
,
GLenum
format
,
GLenum
type
,
GLenum
component
Type
,
bool
srgb
,
ContextRendererSupportCheckFunction
colorRenderable
,
ContextRendererSupportCheckFunction
colorRenderable
,
ContextRendererSupportCheckFunction
textureFilterable
,
ContextRendererSupportCheckFunction
textureFilterable
,
ContextSupportCheckFunction
supportFunction
)
ContextSupportCheckFunction
supportFunction
)
...
@@ -583,16 +575,15 @@ struct InternalFormatInfo
...
@@ -583,16 +575,15 @@ struct InternalFormatInfo
formatInfo
.
mComponentCount
=
((
red
>
0
)
?
1
:
0
)
+
((
green
>
0
)
?
1
:
0
)
+
((
blue
>
0
)
?
1
:
0
)
+
((
alpha
>
0
)
?
1
:
0
);
formatInfo
.
mComponentCount
=
((
red
>
0
)
?
1
:
0
)
+
((
green
>
0
)
?
1
:
0
)
+
((
blue
>
0
)
?
1
:
0
)
+
((
alpha
>
0
)
?
1
:
0
);
formatInfo
.
mFormat
=
format
;
formatInfo
.
mFormat
=
format
;
formatInfo
.
mType
=
type
;
formatInfo
.
mType
=
type
;
formatInfo
.
m
StorageType
=
storage
Type
;
formatInfo
.
m
ComponentType
=
component
Type
;
formatInfo
.
m
IsSRGB
=
srgb
;
formatInfo
.
m
ColorEncoding
=
(
srgb
?
GL_SRGB
:
GL_LINEAR
)
;
formatInfo
.
mIsColorRenderable
=
colorRenderable
;
formatInfo
.
mIsColorRenderable
=
colorRenderable
;
formatInfo
.
mIsTextureFilterable
=
textureFilterable
;
formatInfo
.
mIsTextureFilterable
=
textureFilterable
;
formatInfo
.
mSupportFunction
=
supportFunction
;
formatInfo
.
mSupportFunction
=
supportFunction
;
return
formatInfo
;
return
formatInfo
;
}
}
static
InternalFormatInfo
LUMAFormat
(
GLuint
luminance
,
GLuint
alpha
,
GLenum
format
,
GLenum
type
,
static
InternalFormatInfo
LUMAFormat
(
GLuint
luminance
,
GLuint
alpha
,
GLenum
format
,
GLenum
type
,
GLenum
componentType
,
InternalFormatStorageType
storageType
,
ContextSupportCheckFunction
supportFunction
)
ContextSupportCheckFunction
supportFunction
)
{
{
InternalFormatInfo
formatInfo
;
InternalFormatInfo
formatInfo
;
...
@@ -602,14 +593,14 @@ struct InternalFormatInfo
...
@@ -602,14 +593,14 @@ struct InternalFormatInfo
formatInfo
.
mComponentCount
=
((
luminance
>
0
)
?
1
:
0
)
+
((
alpha
>
0
)
?
1
:
0
);
formatInfo
.
mComponentCount
=
((
luminance
>
0
)
?
1
:
0
)
+
((
alpha
>
0
)
?
1
:
0
);
formatInfo
.
mFormat
=
format
;
formatInfo
.
mFormat
=
format
;
formatInfo
.
mType
=
type
;
formatInfo
.
mType
=
type
;
formatInfo
.
mStorageType
=
storageType
;
formatInfo
.
mComponentType
=
componentType
;
formatInfo
.
mColorEncoding
=
GL_LINEAR
;
formatInfo
.
mIsTextureFilterable
=
AlwaysSupported
;
formatInfo
.
mIsTextureFilterable
=
AlwaysSupported
;
formatInfo
.
mSupportFunction
=
supportFunction
;
formatInfo
.
mSupportFunction
=
supportFunction
;
return
formatInfo
;
return
formatInfo
;
}
}
static
InternalFormatInfo
DepthStencilFormat
(
GLuint
depth
,
GLuint
stencil
,
GLenum
format
,
GLenum
type
,
static
InternalFormatInfo
DepthStencilFormat
(
GLuint
depth
,
GLuint
stencil
,
GLenum
format
,
GLenum
type
,
GLenum
componentType
,
InternalFormatStorageType
storageType
,
ContextRendererSupportCheckFunction
depthRenderable
,
ContextRendererSupportCheckFunction
depthRenderable
,
ContextRendererSupportCheckFunction
stencilRenderable
,
ContextRendererSupportCheckFunction
stencilRenderable
,
ContextSupportCheckFunction
supportFunction
)
ContextSupportCheckFunction
supportFunction
)
...
@@ -621,7 +612,8 @@ struct InternalFormatInfo
...
@@ -621,7 +612,8 @@ struct InternalFormatInfo
formatInfo
.
mComponentCount
=
((
depth
>
0
)
?
1
:
0
)
+
((
stencil
>
0
)
?
1
:
0
);
formatInfo
.
mComponentCount
=
((
depth
>
0
)
?
1
:
0
)
+
((
stencil
>
0
)
?
1
:
0
);
formatInfo
.
mFormat
=
format
;
formatInfo
.
mFormat
=
format
;
formatInfo
.
mType
=
type
;
formatInfo
.
mType
=
type
;
formatInfo
.
mStorageType
=
storageType
;
formatInfo
.
mComponentType
=
componentType
;
formatInfo
.
mColorEncoding
=
GL_LINEAR
;
formatInfo
.
mIsDepthRenderable
=
depthRenderable
;
formatInfo
.
mIsDepthRenderable
=
depthRenderable
;
formatInfo
.
mIsStencilRenderable
=
stencilRenderable
;
formatInfo
.
mIsStencilRenderable
=
stencilRenderable
;
formatInfo
.
mIsTextureFilterable
=
AlwaysSupported
;
formatInfo
.
mIsTextureFilterable
=
AlwaysSupported
;
...
@@ -629,8 +621,8 @@ struct InternalFormatInfo
...
@@ -629,8 +621,8 @@ struct InternalFormatInfo
return
formatInfo
;
return
formatInfo
;
}
}
static
InternalFormatInfo
CompressedFormat
(
GLuint
compressedBlockWidth
,
GLuint
compressedBlockHeight
,
static
InternalFormatInfo
CompressedFormat
(
GLuint
compressedBlockWidth
,
GLuint
compressedBlockHeight
,
GLuint
compressedBlockSize
,
GLuint
comp
ressedBlockSize
,
GLuint
componentCount
,
GLenum
format
,
GLenum
type
,
GLuint
comp
onentCount
,
GLenum
format
,
GLenum
type
,
bool
srgb
,
ContextSupportCheckFunction
supportFunction
)
ContextSupportCheckFunction
supportFunction
)
{
{
InternalFormatInfo
formatInfo
;
InternalFormatInfo
formatInfo
;
...
@@ -640,7 +632,9 @@ struct InternalFormatInfo
...
@@ -640,7 +632,9 @@ struct InternalFormatInfo
formatInfo
.
mComponentCount
=
componentCount
;
formatInfo
.
mComponentCount
=
componentCount
;
formatInfo
.
mFormat
=
format
;
formatInfo
.
mFormat
=
format
;
formatInfo
.
mType
=
type
;
formatInfo
.
mType
=
type
;
formatInfo
.
mStorageType
=
Compressed
;
formatInfo
.
mComponentType
=
GL_UNSIGNED_NORMALIZED
;
formatInfo
.
mColorEncoding
=
(
srgb
?
GL_SRGB
:
GL_LINEAR
);
formatInfo
.
mIsCompressed
=
true
;
formatInfo
.
mIsTextureFilterable
=
AlwaysSupported
;
formatInfo
.
mIsTextureFilterable
=
AlwaysSupported
;
formatInfo
.
mSupportFunction
=
supportFunction
;
formatInfo
.
mSupportFunction
=
supportFunction
;
return
formatInfo
;
return
formatInfo
;
...
@@ -657,93 +651,91 @@ static InternalFormatInfoMap BuildES3InternalFormatInfoMap()
...
@@ -657,93 +651,91 @@ static InternalFormatInfoMap BuildES3InternalFormatInfoMap()
// From ES 3.0.1 spec, table 3.12
// From ES 3.0.1 spec, table 3.12
map
.
insert
(
InternalFormatInfoPair
(
GL_NONE
,
InternalFormatInfo
()));
map
.
insert
(
InternalFormatInfoPair
(
GL_NONE
,
InternalFormatInfo
()));
// | Internal format | | R | G | B | A |S | Format | Type |
Internal format
| SRGB | Color | Texture | Supported |
// | Internal format | | R | G | B | A |S | Format | Type |
Component type
| SRGB | Color | Texture | Supported |
// | | | | | | | | | |
type
| | renderable | filterable | |
// | | | | | | | | | |
| | renderable | filterable | |
map
.
insert
(
InternalFormatInfoPair
(
GL_R8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_BYTE
,
NormalizedFixedPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_BYTE
,
GL_SIGNED_NORMALIZED
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG
,
GL_BYTE
,
NormalizedFixedPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG
,
GL_BYTE
,
GL_SIGNED_NORMALIZED
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_BYTE
,
NormalizedFixedPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_BYTE
,
GL_SIGNED_NORMALIZED
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB565
,
InternalFormatInfo
::
RGBAFormat
(
5
,
6
,
5
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_SHORT_5_5_5_1
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB565
,
InternalFormatInfo
::
RGBAFormat
(
5
,
6
,
5
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_SHORT_5_5_5_1
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA4
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_4_4_4_4
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA4
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_4_4_4_4
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB5_A1
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_5_5_5_1
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB5_A1
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_5_5_5_1
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_BYTE
,
NormalizedFixedPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8_SNORM
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_BYTE
,
GL_SIGNED_NORMALIZED
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB10_A2
,
InternalFormatInfo
::
RGBAFormat
(
10
,
10
,
10
,
2
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB10_A2
,
InternalFormatInfo
::
RGBAFormat
(
10
,
10
,
10
,
2
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB10_A2UI
,
InternalFormatInfo
::
RGBAFormat
(
10
,
10
,
10
,
2
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB10_A2UI
,
InternalFormatInfo
::
RGBAFormat
(
10
,
10
,
10
,
2
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_SRGB8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
true
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_SRGB8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
true
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_SRGB8_ALPHA8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
true
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_SRGB8_ALPHA8
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
true
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R11F_G11F_B10F
,
InternalFormatInfo
::
RGBAFormat
(
11
,
11
,
10
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_INT_10F_11F_11F_REV
,
FloatingPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R11F_G11F_B10F
,
InternalFormatInfo
::
RGBAFormat
(
11
,
11
,
10
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_INT_10F_11F_11F_REV
,
GL_FLOAT
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB9_E5
,
InternalFormatInfo
::
RGBAFormat
(
9
,
9
,
9
,
0
,
5
,
GL_RGB
,
GL_UNSIGNED_INT_5_9_9_9_REV
,
FloatingPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB9_E5
,
InternalFormatInfo
::
RGBAFormat
(
9
,
9
,
9
,
0
,
5
,
GL_RGB
,
GL_UNSIGNED_INT_5_9_9_9_REV
,
GL_FLOAT
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_BYTE
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_BYTE
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_UNSIGNED_BYTE
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_SHORT
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_SHORT
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_UNSIGNED_SHORT
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_UNSIGNED_SHORT
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_INT
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_INT
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_UNSIGNED_INT
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
0
,
0
,
0
,
0
,
GL_RED_INTEGER
,
GL_UNSIGNED_INT
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_BYTE
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_BYTE
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_UNSIGNED_BYTE
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_SHORT
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_SHORT
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_UNSIGNED_SHORT
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_UNSIGNED_SHORT
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_INT
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_INT
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_UNSIGNED_INT
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
0
,
0
,
0
,
GL_RG_INTEGER
,
GL_UNSIGNED_INT
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB_INTEGER
,
GL_BYTE
,
SignedInteger
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB_INTEGER
,
GL_BYTE
,
GL_INT
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB_INTEGER
,
GL_UNSIGNED_BYTE
,
UnsignedInteger
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB_INTEGER
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_INT
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB_INTEGER
,
GL_SHORT
,
SignedInteger
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB_INTEGER
,
GL_SHORT
,
GL_INT
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB_INTEGER
,
GL_UNSIGNED_SHORT
,
UnsignedInteger
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB_INTEGER
,
GL_UNSIGNED_SHORT
,
GL_UNSIGNED_INT
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB_INTEGER
,
GL_INT
,
SignedInteger
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB_INTEGER
,
GL_INT
,
GL_INT
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB_INTEGER
,
GL_UNSIGNED_INT
,
UnsignedInteger
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB_INTEGER
,
GL_UNSIGNED_INT
,
GL_UNSIGNED_INT
,
false
,
NeverSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA_INTEGER
,
GL_BYTE
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8I
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA_INTEGER
,
GL_BYTE
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA_INTEGER
,
GL_UNSIGNED_BYTE
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8UI
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA_INTEGER
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA_INTEGER
,
GL_SHORT
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16I
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA_INTEGER
,
GL_SHORT
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA_INTEGER
,
GL_UNSIGNED_SHORT
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16UI
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA_INTEGER
,
GL_UNSIGNED_SHORT
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA_INTEGER
,
GL_INT
,
SignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32I
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA_INTEGER
,
GL_INT
,
GL_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA_INTEGER
,
GL_UNSIGNED_INT
,
UnsignedInteger
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32UI
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA_INTEGER
,
GL_UNSIGNED_INT
,
GL_UNSIGNED_INT
,
false
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA8_EXT
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA8_EXT
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA4_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA4_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGR5_A1_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGR5_A1_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
// Floating point renderability and filtering is provided by OES_texture_float and OES_texture_half_float
// Floating point renderability and filtering is provided by OES_texture_float and OES_texture_half_float
// | Internal format | | D |S | Format | Type |
Internal fmt | SRGB | Color | Texture | Supported
|
// | Internal format | | D |S | Format | Type |
Comp | SRGB | Color renderable | Texture filterable | Supported
|
// | | | | | | | type
| | renderable | filterable |
|
// | | | | | | | type
| | | |
|
map
.
insert
(
InternalFormatInfoPair
(
GL_R16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_HALF_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_HALF_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
0
,
0
,
0
,
GL_RG
,
GL_HALF_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
0
,
0
,
0
,
GL_RG
,
GL_HALF_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB
,
GL_HALF_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB
,
GL_HALF_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA
,
GL_HALF_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16F
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA
,
GL_HALF_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_R32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
0
,
0
,
0
,
0
,
GL_RED
,
GL_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
0
,
0
,
0
,
GL_RG
,
GL_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RG32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
0
,
0
,
0
,
GL_RG
,
GL_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB
,
GL_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB
,
GL_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA
,
GL_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32F
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA
,
GL_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
AlwaysSupported
)));
// Depth stencil formats
// Depth stencil formats
// | Internal format | | D |S | Format | Type |
Internal format
| Depth | Stencil | Supported |
// | Internal format | | D |S | Format | Type |
Component type
| Depth | Stencil | Supported |
// | | | | | | |
type
| renderable | renderable | |
// | | | | | | |
| renderable | renderable | |
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT16
,
InternalFormatInfo
::
DepthStencilFormat
(
16
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
NormalizedFixedPoint
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT16
,
InternalFormatInfo
::
DepthStencilFormat
(
16
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT24
,
InternalFormatInfo
::
DepthStencilFormat
(
24
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
NormalizedFixedPoint
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT24
,
InternalFormatInfo
::
DepthStencilFormat
(
24
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT32F
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
0
,
GL_DEPTH_COMPONENT
,
GL_FLOAT
,
FloatingPoint
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT32F
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
0
,
GL_DEPTH_COMPONENT
,
GL_FLOAT
,
GL_FLOAT
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT32_OES
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
NormalizedFixedPoint
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT32_OES
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH24_STENCIL8
,
InternalFormatInfo
::
DepthStencilFormat
(
24
,
8
,
GL_DEPTH_STENCIL
,
GL_UNSIGNED_INT_24_8
,
NormalizedFixedPoint
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH24_STENCIL8
,
InternalFormatInfo
::
DepthStencilFormat
(
24
,
8
,
GL_DEPTH_STENCIL
,
GL_UNSIGNED_INT_24_8
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH32F_STENCIL8
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
8
,
GL_DEPTH_STENCIL
,
GL_FLOAT_32_UNSIGNED_INT_24_8_REV
,
FloatingPoint
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH32F_STENCIL8
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
8
,
GL_DEPTH_STENCIL
,
GL_FLOAT_32_UNSIGNED_INT_24_8_REV
,
GL_FLOAT
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_STENCIL_INDEX8
,
InternalFormatInfo
::
DepthStencilFormat
(
0
,
8
,
GL_DEPTH_STENCIL
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_STENCIL_INDEX8
,
InternalFormatInfo
::
DepthStencilFormat
(
0
,
8
,
GL_DEPTH_STENCIL
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_INT
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
// Luminance alpha formats
// Luminance alpha formats
// | Internal format | | L | A | Format | Type | Internal format | Supported |
// | Internal format | | L | A | Format | Type | Component type | Supported |
// | | | | | | | type | |
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
8
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
8
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
32
,
GL_ALPHA
,
GL_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
32
,
GL_ALPHA
,
GL_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
0
,
GL_LUMINANCE
,
GL_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
0
,
GL_LUMINANCE
,
GL_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
16
,
GL_ALPHA
,
GL_HALF_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
16
,
GL_ALPHA
,
GL_HALF_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
0
,
GL_LUMINANCE
,
GL_HALF_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
0
,
GL_LUMINANCE
,
GL_HALF_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
8
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
8
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
32
,
GL_LUMINANCE_ALPHA
,
GL_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
32
,
GL_LUMINANCE_ALPHA
,
GL_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
16
,
GL_LUMINANCE_ALPHA
,
GL_HALF_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
16
,
GL_LUMINANCE_ALPHA
,
GL_HALF_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
// Unsized formats
// Unsized formats
// | Internal format | | Format | Supported |
// | Internal format | | Format | Supported |
// | | | | |
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_ALPHA
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_ALPHA
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE_ALPHA
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE_ALPHA
,
AlwaysSupported
)));
...
@@ -752,30 +744,28 @@ static InternalFormatInfoMap BuildES3InternalFormatInfoMap()
...
@@ -752,30 +744,28 @@ static InternalFormatInfoMap BuildES3InternalFormatInfoMap()
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA_EXT
,
InternalFormatInfo
::
UnsizedFormat
(
GL_BGRA_EXT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA_EXT
,
InternalFormatInfo
::
UnsizedFormat
(
GL_BGRA_EXT
,
AlwaysSupported
)));
// Compressed formats, From ES 3.0.1 spec, table 3.16
// Compressed formats, From ES 3.0.1 spec, table 3.16
// | Internal format | |W |H | B |C | Format | Type | Supported |
// | Internal format | |W |H | BS |CC| Format | Type | SRGB | Supported |
// | | | | | S |C | | | |
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_R11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
1
,
GL_COMPRESSED_R11_EAC
,
GL_UNSIGNED_BYTE
,
false
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_R11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
1
,
GL_COMPRESSED_R11_EAC
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SIGNED_R11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
1
,
GL_COMPRESSED_SIGNED_R11_EAC
,
GL_UNSIGNED_BYTE
,
false
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SIGNED_R11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
1
,
GL_COMPRESSED_SIGNED_R11_EAC
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RG11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
2
,
GL_COMPRESSED_RG11_EAC
,
GL_UNSIGNED_BYTE
,
false
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RG11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
2
,
GL_COMPRESSED_RG11_EAC
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SIGNED_RG11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
2
,
GL_COMPRESSED_SIGNED_RG11_EAC
,
GL_UNSIGNED_BYTE
,
false
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SIGNED_RG11_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
2
,
GL_COMPRESSED_SIGNED_RG11_EAC
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB8_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB8_ETC2
,
GL_UNSIGNED_BYTE
,
false
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB8_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB8_ETC2
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SRGB8_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_SRGB8_ETC2
,
GL_UNSIGNED_BYTE
,
true
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SRGB8_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_SRGB8_ETC2
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
GL_UNSIGNED_BYTE
,
false
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
GL_UNSIGNED_BYTE
,
true
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA8_ETC2_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA8_ETC2_EAC
,
GL_UNSIGNED_BYTE
,
false
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA8_ETC2_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA8_ETC2_EAC
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
,
GL_UNSIGNED_BYTE
,
true
,
UnimplementedSupport
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
,
GL_UNSIGNED_BYTE
,
UnimplementedSupport
)));
// From GL_EXT_texture_compression_dxt1
// From GL_EXT_texture_compression_dxt1
// | Internal format | |W |H | B |C | Format | Type | Supported |
// | Internal format | |W |H | BS |CC| Format | Type | SRGB | Supported |
// | | | | | S |C | | | |
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
false
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
false
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
AlwaysSupported
)));
// From GL_ANGLE_texture_compression_dxt3
// From GL_ANGLE_texture_compression_dxt3
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
GL_UNSIGNED_BYTE
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
GL_UNSIGNED_BYTE
,
false
,
AlwaysSupported
)));
// From GL_ANGLE_texture_compression_dxt5
// From GL_ANGLE_texture_compression_dxt5
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
GL_UNSIGNED_BYTE
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
GL_UNSIGNED_BYTE
,
false
,
AlwaysSupported
)));
return
map
;
return
map
;
}
}
...
@@ -787,38 +777,37 @@ static InternalFormatInfoMap BuildES2InternalFormatInfoMap()
...
@@ -787,38 +777,37 @@ static InternalFormatInfoMap BuildES2InternalFormatInfoMap()
// From ES 2.0.25 table 4.5
// From ES 2.0.25 table 4.5
map
.
insert
(
InternalFormatInfoPair
(
GL_NONE
,
InternalFormatInfo
()));
map
.
insert
(
InternalFormatInfoPair
(
GL_NONE
,
InternalFormatInfo
()));
// | Internal format | | R | G | B | A |S | Format | Type |
Internal format
| SRGB | Color | Texture | Supported |
// | Internal format | | R | G | B | A |S | Format | Type |
Component type
| SRGB | Color | Texture | Supported |
// | | | | | | | | | |
type
| | renderable | filterable | |
// | | | | | | | | | |
| | renderable | filterable | |
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA4
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_4_4_4_4
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA4
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_4_4_4_4
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB5_A1
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_5_5_5_1
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB5_A1
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT_5_5_5_1
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB565
,
InternalFormatInfo
::
RGBAFormat
(
5
,
6
,
5
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_SHORT_5_6_5
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB565
,
InternalFormatInfo
::
RGBAFormat
(
5
,
6
,
5
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_SHORT_5_6_5
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
// Extension formats
// Extension formats
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8_OES
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB8_OES
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
0
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8_OES
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA8_OES
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA8_EXT
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA8_EXT
,
InternalFormatInfo
::
RGBAFormat
(
8
,
8
,
8
,
8
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
false
,
AlwaysSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA4_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_4_4_4_4
,
NormalizedFixedPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGRA4_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
4
,
4
,
4
,
4
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_4_4_4_4
,
GL_UNSIGNED_NORMALIZED
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGR5_A1_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_5_5_5_1
,
NormalizedFixedPoint
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_BGR5_A1_ANGLEX
,
InternalFormatInfo
::
RGBAFormat
(
5
,
5
,
5
,
1
,
0
,
GL_BGRA_EXT
,
GL_UNSIGNED_SHORT_5_5_5_1
,
GL_UNSIGNED_NORMALIZED
,
false
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
// Floating point formats have to query the renderer for support
// Floating point formats have to query the renderer for support
// | Internal format | | R | G | B | A |S | Format | Type |
Internal fmt | SRGB | Color | Texture
| Supported |
// | Internal format | | R | G | B | A |S | Format | Type |
Comp | SRGB | Color renderable | Texture filterable
| Supported |
// | | | | | | | | | | type
| | renderable | filterable
| |
// | | | | | | | | | | type
| | |
| |
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB
,
GL_HALF_FLOAT_OES
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB16F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
0
,
0
,
GL_RGB
,
GL_HALF_FLOAT_OES
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB
,
GL_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGB32F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
0
,
0
,
GL_RGB
,
GL_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA
,
GL_HALF_FLOAT_OES
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA16F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
16
,
16
,
16
,
16
,
0
,
GL_RGBA
,
GL_HALF_FLOAT_OES
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat16RenderableTextures
,
&
rx
::
Renderer
::
getFloat16TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16LinearFilter
,
&
rx
::
Renderer
::
getFloat16TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat16Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA
,
GL_FLOAT
,
FloatingPoint
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_RGBA32F_EXT
,
InternalFormatInfo
::
RGBAFormat
(
32
,
32
,
32
,
32
,
0
,
GL_RGBA
,
GL_FLOAT
,
GL_FLOAT
,
false
,
CheckSupport
<&
Context
::
supportsFloat32RenderableTextures
,
&
rx
::
Renderer
::
getFloat32TextureRenderingSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32LinearFilter
,
&
rx
::
Renderer
::
getFloat32TextureFilteringSupport
>
,
CheckSupport
<&
Context
::
supportsFloat32Textures
>
)));
// Depth and stencil formats
// Depth and stencil formats
// | Internal format | | D |S | Format | Type | Internal format | Depth | Stencil | Supported |
// | Internal format | | D |S | Format | Type | Internal format | Depth | Stencil | Supported |
// | | | | | | | type | renderable | renderable | |
// | | | | | | | type | renderable | renderable | |
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT32_OES
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
NormalizedFixedPoint
,
AlwaysSupported
,
NeverSupported
,
CheckSupport
<&
Context
::
supportsDepthTextures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT32_OES
,
InternalFormatInfo
::
DepthStencilFormat
(
32
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
,
NeverSupported
,
CheckSupport
<&
Context
::
supportsDepthTextures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH24_STENCIL8_OES
,
InternalFormatInfo
::
DepthStencilFormat
(
24
,
8
,
GL_DEPTH_STENCIL_OES
,
GL_UNSIGNED_INT_24_8_OES
,
NormalizedFixedPoint
,
AlwaysSupported
,
AlwaysSupported
,
CheckSupport
<&
Context
::
supportsDepthTextures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH24_STENCIL8_OES
,
InternalFormatInfo
::
DepthStencilFormat
(
24
,
8
,
GL_DEPTH_STENCIL_OES
,
GL_UNSIGNED_INT_24_8_OES
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
,
AlwaysSupported
,
CheckSupport
<&
Context
::
supportsDepthTextures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT16
,
InternalFormatInfo
::
DepthStencilFormat
(
16
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
NormalizedFixedPoint
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_COMPONENT16
,
InternalFormatInfo
::
DepthStencilFormat
(
16
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
,
NeverSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_STENCIL_INDEX8
,
InternalFormatInfo
::
DepthStencilFormat
(
0
,
8
,
GL_DEPTH_STENCIL_OES
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_STENCIL_INDEX8
,
InternalFormatInfo
::
DepthStencilFormat
(
0
,
8
,
GL_DEPTH_STENCIL_OES
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
NeverSupported
,
AlwaysSupported
,
AlwaysSupported
)));
// Unsized formats
// Unsized formats
// | Internal format | | Format | Supported |
// | Internal format | | Format | Supported |
// | | | | |
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_ALPHA
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_ALPHA
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE_ALPHA
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA
,
InternalFormatInfo
::
UnsizedFormat
(
GL_LUMINANCE_ALPHA
,
AlwaysSupported
)));
...
@@ -829,29 +818,27 @@ static InternalFormatInfoMap BuildES2InternalFormatInfoMap()
...
@@ -829,29 +818,27 @@ static InternalFormatInfoMap BuildES2InternalFormatInfoMap()
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_STENCIL_OES
,
InternalFormatInfo
::
UnsizedFormat
(
GL_DEPTH_STENCIL_OES
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_DEPTH_STENCIL_OES
,
InternalFormatInfo
::
UnsizedFormat
(
GL_DEPTH_STENCIL_OES
,
AlwaysSupported
)));
// Luminance alpha formats from GL_EXT_texture_storage
// Luminance alpha formats from GL_EXT_texture_storage
// | Internal format | | L | A | Format | Type | Internal format | Supported |
// | Internal format | | L | A | Format | Type | Component type | Supported |
// | | | | | | | type | |
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
8
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
8
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
32
,
GL_ALPHA
,
GL_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
32
,
GL_ALPHA
,
GL_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
0
,
GL_LUMINANCE
,
GL_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
0
,
GL_LUMINANCE
,
GL_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
16
,
GL_ALPHA
,
GL_HALF_FLOAT_OES
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
0
,
16
,
GL_ALPHA
,
GL_HALF_FLOAT_OES
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
0
,
GL_LUMINANCE
,
GL_HALF_FLOAT_OES
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
0
,
GL_LUMINANCE
,
GL_HALF_FLOAT_OES
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
8
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_NORMALIZED
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE8_ALPHA8_EXT
,
InternalFormatInfo
::
LUMAFormat
(
8
,
8
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
NormalizedFixedPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
32
,
GL_LUMINANCE_ALPHA
,
GL_FLOAT
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA32F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
32
,
32
,
GL_LUMINANCE_ALPHA
,
GL_FLOAT
,
FloatingPoint
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
16
,
GL_LUMINANCE_ALPHA
,
GL_HALF_FLOAT_OES
,
GL_FLOAT
,
AlwaysSupported
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_LUMINANCE_ALPHA16F_EXT
,
InternalFormatInfo
::
LUMAFormat
(
16
,
16
,
GL_LUMINANCE_ALPHA
,
GL_HALF_FLOAT_OES
,
FloatingPoint
,
AlwaysSupported
)));
// From GL_EXT_texture_compression_dxt1
// From GL_EXT_texture_compression_dxt1
// | Internal format | |W |H | B |C |Format | Type | Supported |
// | Internal format | |W |H | BS |CC|Format | Type | SRGB | Supported |
// | | | | | S |C | | | |
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
false
,
CheckSupport
<&
Context
::
supportsDXT1Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
3
,
GL_COMPRESSED_RGB_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
CheckSupport
<&
Context
::
supportsDXT1Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
false
,
CheckSupport
<&
Context
::
supportsDXT1Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
64
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
GL_UNSIGNED_BYTE
,
CheckSupport
<&
Context
::
supportsDXT1Textures
>
)));
// From GL_ANGLE_texture_compression_dxt3
// From GL_ANGLE_texture_compression_dxt3
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
GL_UNSIGNED_BYTE
,
CheckSupport
<&
Context
::
supportsDXT3Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
,
GL_UNSIGNED_BYTE
,
false
,
CheckSupport
<&
Context
::
supportsDXT3Textures
>
)));
// From GL_ANGLE_texture_compression_dxt5
// From GL_ANGLE_texture_compression_dxt5
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
GL_UNSIGNED_BYTE
,
CheckSupport
<&
Context
::
supportsDXT5Textures
>
)));
map
.
insert
(
InternalFormatInfoPair
(
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
InternalFormatInfo
::
CompressedFormat
(
4
,
4
,
128
,
4
,
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
,
GL_UNSIGNED_BYTE
,
false
,
CheckSupport
<&
Context
::
supportsDXT5Textures
>
)));
return
map
;
return
map
;
}
}
...
@@ -1116,19 +1103,23 @@ bool IsValidCopyTexImageCombination(GLenum textureInternalFormat, GLenum frameBu
...
@@ -1116,19 +1103,23 @@ bool IsValidCopyTexImageCombination(GLenum textureInternalFormat, GLenum frameBu
// must both be signed or unsigned or fixed/floating point and both source and destinations
// must both be signed or unsigned or fixed/floating point and both source and destinations
// must be either both SRGB or both not SRGB
// must be either both SRGB or both not SRGB
if
(
textureInternalFormatInfo
.
mIsSRGB
!=
framebufferInternalFormatInfo
.
mIsSRGB
)
if
(
(
textureInternalFormatInfo
.
mColorEncoding
==
GL_SRGB
)
!=
(
framebufferInternalFormatInfo
.
mColorEncoding
==
GL_SRGB
)
)
{
{
return
false
;
return
false
;
}
}
if
((
textureInternalFormatInfo
.
m
StorageType
==
SignedInteger
&&
framebufferInternalFormatInfo
.
mStorageType
==
SignedInteger
)
||
if
((
textureInternalFormatInfo
.
m
ComponentType
==
GL_INT
&&
framebufferInternalFormatInfo
.
mComponentType
==
GL_INT
)
||
(
textureInternalFormatInfo
.
m
StorageType
==
UnsignedInteger
&&
framebufferInternalFormatInfo
.
mStorageType
==
UnsignedInteger
))
(
textureInternalFormatInfo
.
m
ComponentType
==
GL_UNSIGNED_INT
&&
framebufferInternalFormatInfo
.
mComponentType
==
GL_UNSIGNED_INT
))
{
{
return
true
;
return
true
;
}
}
if
((
textureInternalFormatInfo
.
mStorageType
==
NormalizedFixedPoint
||
textureInternalFormatInfo
.
mStorageType
==
FloatingPoint
)
&&
if
((
textureInternalFormatInfo
.
mComponentType
==
GL_UNSIGNED_NORMALIZED
||
(
framebufferInternalFormatInfo
.
mStorageType
==
NormalizedFixedPoint
||
framebufferInternalFormatInfo
.
mStorageType
==
FloatingPoint
))
textureInternalFormatInfo
.
mComponentType
==
GL_SIGNED_NORMALIZED
||
textureInternalFormatInfo
.
mComponentType
==
GL_FLOAT
)
&&
(
framebufferInternalFormatInfo
.
mComponentType
==
GL_UNSIGNED_NORMALIZED
||
framebufferInternalFormatInfo
.
mComponentType
==
GL_SIGNED_NORMALIZED
||
framebufferInternalFormatInfo
.
mComponentType
==
GL_FLOAT
))
{
{
return
true
;
return
true
;
}
}
...
@@ -1338,69 +1329,12 @@ GLenum GetType(GLint internalFormat, GLuint clientVersion)
...
@@ -1338,69 +1329,12 @@ GLenum GetType(GLint internalFormat, GLuint clientVersion)
}
}
}
}
bool
IsNormalizedFixedPointFormat
(
GLint
internalFormat
,
GLuint
clientVersion
)
GLuint
GetComponentType
(
GLint
internalFormat
,
GLuint
clientVersion
)
{
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
return
internalFormatInfo
.
mStorageType
==
NormalizedFixedPoint
;
}
else
{
UNREACHABLE
();
return
false
;
}
}
bool
IsIntegerFormat
(
GLint
internalFormat
,
GLuint
clientVersion
)
{
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
return
internalFormatInfo
.
mStorageType
==
UnsignedInteger
||
internalFormatInfo
.
mStorageType
==
SignedInteger
;
}
else
{
UNREACHABLE
();
return
false
;
}
}
bool
IsSignedIntegerFormat
(
GLint
internalFormat
,
GLuint
clientVersion
)
{
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
return
internalFormatInfo
.
mStorageType
==
SignedInteger
;
}
else
{
UNREACHABLE
();
return
false
;
}
}
bool
IsUnsignedIntegerFormat
(
GLint
internalFormat
,
GLuint
clientVersion
)
{
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
return
internalFormatInfo
.
mStorageType
==
UnsignedInteger
;
}
else
{
UNREACHABLE
();
return
false
;
}
}
bool
IsFloatingPointFormat
(
GLint
internalFormat
,
GLuint
clientVersion
)
{
{
InternalFormatInfo
internalFormatInfo
;
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
{
return
internalFormatInfo
.
m
StorageType
==
FloatingPoint
;
return
internalFormatInfo
.
m
ComponentType
;
}
}
else
else
{
{
...
@@ -1409,12 +1343,12 @@ bool IsFloatingPointFormat(GLint internalFormat, GLuint clientVersion)
...
@@ -1409,12 +1343,12 @@ bool IsFloatingPointFormat(GLint internalFormat, GLuint clientVersion)
}
}
}
}
bool
IsSRGBFormat
(
GLint
internalFormat
,
GLuint
clientVersion
)
GLenum
GetColorEncoding
(
GLint
internalFormat
,
GLuint
clientVersion
)
{
{
InternalFormatInfo
internalFormatInfo
;
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
{
return
internalFormatInfo
.
m
IsSRGB
;
return
internalFormatInfo
.
m
ColorEncoding
;
}
}
else
else
{
{
...
@@ -1551,7 +1485,7 @@ GLuint GetBlockSize(GLint internalFormat, GLenum type, GLuint clientVersion, GLs
...
@@ -1551,7 +1485,7 @@ GLuint GetBlockSize(GLint internalFormat, GLenum type, GLuint clientVersion, GLs
InternalFormatInfo
internalFormatInfo
;
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
{
if
(
internalFormatInfo
.
m
StorageType
==
Compressed
)
if
(
internalFormatInfo
.
m
Is
Compressed
)
{
{
GLsizei
numBlocksWide
=
(
width
+
internalFormatInfo
.
mCompressedBlockWidth
-
1
)
/
internalFormatInfo
.
mCompressedBlockWidth
;
GLsizei
numBlocksWide
=
(
width
+
internalFormatInfo
.
mCompressedBlockWidth
-
1
)
/
internalFormatInfo
.
mCompressedBlockWidth
;
GLsizei
numBlocksHight
=
(
height
+
internalFormatInfo
.
mCompressedBlockHeight
-
1
)
/
internalFormatInfo
.
mCompressedBlockHeight
;
GLsizei
numBlocksHight
=
(
height
+
internalFormatInfo
.
mCompressedBlockHeight
-
1
)
/
internalFormatInfo
.
mCompressedBlockHeight
;
...
@@ -1591,7 +1525,7 @@ bool IsFormatCompressed(GLint internalFormat, GLuint clientVersion)
...
@@ -1591,7 +1525,7 @@ bool IsFormatCompressed(GLint internalFormat, GLuint clientVersion)
InternalFormatInfo
internalFormatInfo
;
InternalFormatInfo
internalFormatInfo
;
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
if
(
GetInternalFormatInfo
(
internalFormat
,
clientVersion
,
&
internalFormatInfo
))
{
{
return
internalFormatInfo
.
m
StorageType
==
Compressed
;
return
internalFormatInfo
.
m
Is
Compressed
;
}
}
else
else
{
{
...
...
src/libGLESv2/formatutils.h
View file @
b2f3d05c
...
@@ -65,13 +65,8 @@ bool IsSpecialInterpretationType(GLenum type);
...
@@ -65,13 +65,8 @@ bool IsSpecialInterpretationType(GLenum type);
GLenum
GetFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
GLenum
GetFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
GLenum
GetType
(
GLint
internalFormat
,
GLuint
clientVersion
);
GLenum
GetType
(
GLint
internalFormat
,
GLuint
clientVersion
);
bool
IsNormalizedFixedPointFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
GLenum
GetComponentType
(
GLint
internalFormat
,
GLuint
clientVersion
);
bool
IsIntegerFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
GLenum
GetColorEncoding
(
GLint
internalFormat
,
GLuint
clientVersion
);
bool
IsSignedIntegerFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
bool
IsUnsignedIntegerFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
bool
IsFloatingPointFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
bool
IsSRGBFormat
(
GLint
internalFormat
,
GLuint
clientVersion
);
bool
IsColorRenderingSupported
(
GLint
internalFormat
,
const
rx
::
Renderer
*
renderer
);
bool
IsColorRenderingSupported
(
GLint
internalFormat
,
const
rx
::
Renderer
*
renderer
);
bool
IsColorRenderingSupported
(
GLint
internalFormat
,
const
Context
*
context
);
bool
IsColorRenderingSupported
(
GLint
internalFormat
,
const
Context
*
context
);
...
...
src/libGLESv2/renderer/Blit11.cpp
View file @
b2f3d05c
...
@@ -232,7 +232,7 @@ bool Blit11::copyTexture(ID3D11ShaderResourceView *source, const gl::Box &source
...
@@ -232,7 +232,7 @@ bool Blit11::copyTexture(ID3D11ShaderResourceView *source, const gl::Box &source
BlitParameters
parameters
=
{
0
};
BlitParameters
parameters
=
{
0
};
parameters
.
mDestinationFormat
=
destFormat
;
parameters
.
mDestinationFormat
=
destFormat
;
parameters
.
mSignedInteger
=
gl
::
IsSignedIntegerFormat
(
sourceInternalFormat
,
mRenderer
->
getCurrentClientVersion
())
;
parameters
.
mSignedInteger
=
gl
::
GetComponentType
(
sourceInternalFormat
,
mRenderer
->
getCurrentClientVersion
())
==
GL_INT
;
parameters
.
m3DBlit
=
sourceArea
.
depth
>
1
;
parameters
.
m3DBlit
=
sourceArea
.
depth
>
1
;
BlitShaderMap
::
const_iterator
i
=
mShaderMap
.
find
(
parameters
);
BlitShaderMap
::
const_iterator
i
=
mShaderMap
.
find
(
parameters
);
...
...
src/libGLESv2/renderer/Renderer11.cpp
View file @
b2f3d05c
...
@@ -2494,7 +2494,8 @@ GLsizei Renderer11::getNumSampleCounts(GLint internalFormat) const
...
@@ -2494,7 +2494,8 @@ GLsizei Renderer11::getNumSampleCounts(GLint internalFormat) const
unsigned
int
numCounts
=
0
;
unsigned
int
numCounts
=
0
;
// D3D11 supports multisampling for signed and unsigned format, but ES 3.0 does not
// D3D11 supports multisampling for signed and unsigned format, but ES 3.0 does not
if
(
!
gl
::
IsIntegerFormat
(
internalFormat
,
getCurrentClientVersion
()))
GLenum
componentType
=
gl
::
GetComponentType
(
internalFormat
,
getCurrentClientVersion
());
if
(
componentType
!=
GL_INT
&&
componentType
!=
GL_UNSIGNED_INT
)
{
{
DXGI_FORMAT
format
=
gl_d3d11
::
GetRenderableFormat
(
internalFormat
,
getCurrentClientVersion
());
DXGI_FORMAT
format
=
gl_d3d11
::
GetRenderableFormat
(
internalFormat
,
getCurrentClientVersion
());
MultisampleSupportMap
::
const_iterator
iter
=
mMultisampleSupportMap
.
find
(
format
);
MultisampleSupportMap
::
const_iterator
iter
=
mMultisampleSupportMap
.
find
(
format
);
...
@@ -2518,8 +2519,11 @@ GLsizei Renderer11::getNumSampleCounts(GLint internalFormat) const
...
@@ -2518,8 +2519,11 @@ GLsizei Renderer11::getNumSampleCounts(GLint internalFormat) const
void
Renderer11
::
getSampleCounts
(
GLint
internalFormat
,
GLsizei
bufSize
,
GLint
*
params
)
const
void
Renderer11
::
getSampleCounts
(
GLint
internalFormat
,
GLsizei
bufSize
,
GLint
*
params
)
const
{
{
// D3D11 supports multisampling for signed and unsigned format, but ES 3.0 does not
// D3D11 supports multisampling for signed and unsigned format, but ES 3.0 does not
if
(
gl
::
IsIntegerFormat
(
internalFormat
,
getCurrentClientVersion
()))
GLenum
componentType
=
gl
::
GetComponentType
(
internalFormat
,
getCurrentClientVersion
());
if
(
componentType
==
GL_INT
||
componentType
==
GL_UNSIGNED_INT
)
{
return
;
return
;
}
DXGI_FORMAT
format
=
gl_d3d11
::
GetRenderableFormat
(
internalFormat
,
getCurrentClientVersion
());
DXGI_FORMAT
format
=
gl_d3d11
::
GetRenderableFormat
(
internalFormat
,
getCurrentClientVersion
());
MultisampleSupportMap
::
const_iterator
iter
=
mMultisampleSupportMap
.
find
(
format
);
MultisampleSupportMap
::
const_iterator
iter
=
mMultisampleSupportMap
.
find
(
format
);
...
...
src/libGLESv2/validationES.cpp
View file @
b2f3d05c
...
@@ -52,7 +52,8 @@ bool ValidateRenderbufferStorageParameters(const gl::Context *context, GLenum ta
...
@@ -52,7 +52,8 @@ bool ValidateRenderbufferStorageParameters(const gl::Context *context, GLenum ta
return
gl
::
error
(
GL_INVALID_ENUM
,
false
);
return
gl
::
error
(
GL_INVALID_ENUM
,
false
);
}
}
if
(
gl
::
IsIntegerFormat
(
internalformat
,
context
->
getClientVersion
())
&&
samples
>
0
)
GLenum
componentType
=
gl
::
GetComponentType
(
internalformat
,
context
->
getClientVersion
());
if
((
componentType
==
GL_UNSIGNED_INT
||
componentType
==
GL_INT
)
&&
samples
>
0
)
{
{
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
}
}
...
@@ -183,40 +184,43 @@ bool ValidateBlitFramebufferParameters(gl::Context *context, GLint srcX0, GLint
...
@@ -183,40 +184,43 @@ bool ValidateBlitFramebufferParameters(gl::Context *context, GLint srcX0, GLint
if
(
readColorBuffer
&&
drawColorBuffer
)
if
(
readColorBuffer
&&
drawColorBuffer
)
{
{
GLint
readInternalFormat
=
readColorBuffer
->
getActualFormat
();
GLint
readInternalFormat
=
readColorBuffer
->
getActualFormat
();
GL
int
drawInternalFormat
=
drawColorBuffer
->
getActualFormat
(
);
GL
enum
readComponentType
=
gl
::
GetComponentType
(
readInternalFormat
,
clientVersion
);
for
(
unsigned
int
i
=
0
;
i
<
gl
::
IMPLEMENTATION_MAX_DRAW_BUFFERS
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
gl
::
IMPLEMENTATION_MAX_DRAW_BUFFERS
;
i
++
)
{
{
if
(
drawFramebuffer
->
isEnabledColorAttachment
(
i
))
if
(
drawFramebuffer
->
isEnabledColorAttachment
(
i
))
{
{
GLint
drawbufferAttachmentFormat
=
drawFramebuffer
->
getColorbuffer
(
i
)
->
getActualFormat
();
GLint
drawInternalFormat
=
drawFramebuffer
->
getColorbuffer
(
i
)
->
getActualFormat
();
GLenum
drawComponentType
=
gl
::
GetComponentType
(
drawInternalFormat
,
clientVersion
);
if
(
gl
::
IsNormalizedFixedPointFormat
(
readInternalFormat
,
clientVersion
)
&&
!
gl
::
IsNormalizedFixedPointFormat
(
drawbufferAttachmentFormat
,
clientVersion
))
// The GL ES 3.0.2 spec (pg 193) states that:
// 1) If the read buffer is fixed point format, the draw buffer must be as well
// 2) If the read buffer is an unsigned integer format, the draw buffer must be as well
// 3) If the read buffer is a signed integer format, the draw buffer must be as well
if
(
(
readComponentType
==
GL_UNSIGNED_NORMALIZED
||
readComponentType
==
GL_SIGNED_NORMALIZED
)
&&
!
(
drawComponentType
==
GL_UNSIGNED_NORMALIZED
||
drawComponentType
==
GL_SIGNED_NORMALIZED
))
{
{
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
}
}
if
(
gl
::
IsUnsignedIntegerFormat
(
readInternalFormat
,
clientVersion
)
&&
if
(
readComponentType
==
GL_UNSIGNED_INT
&&
drawComponentType
!=
GL_UNSIGNED_INT
)
!
gl
::
IsUnsignedIntegerFormat
(
drawbufferAttachmentFormat
,
clientVersion
))
{
{
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
}
}
if
(
gl
::
IsSignedIntegerFormat
(
readInternalFormat
,
clientVersion
)
&&
if
(
readComponentType
==
GL_INT
&&
drawComponentType
!=
GL_INT
)
!
gl
::
IsSignedIntegerFormat
(
drawbufferAttachmentFormat
,
clientVersion
))
{
{
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
}
}
if
(
readColorBuffer
->
getSamples
()
>
0
&&
(
readInternalFormat
!=
draw
bufferAttachment
Format
||
!
sameBounds
))
if
(
readColorBuffer
->
getSamples
()
>
0
&&
(
readInternalFormat
!=
draw
Internal
Format
||
!
sameBounds
))
{
{
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
}
}
}
}
}
}
if
(
gl
::
IsIntegerFormat
(
readInternalFormat
,
clientVersion
)
&&
filter
==
GL_LINEAR
)
if
(
(
readComponentType
==
GL_INT
||
readComponentType
==
GL_UNSIGNED_INT
)
&&
filter
==
GL_LINEAR
)
{
{
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
return
gl
::
error
(
GL_INVALID_OPERATION
,
false
);
}
}
...
...
src/libGLESv2/validationES3.cpp
View file @
b2f3d05c
...
@@ -756,13 +756,13 @@ bool ValidES3ReadFormatType(GLenum internalFormat, GLenum format, GLenum type)
...
@@ -756,13 +756,13 @@ bool ValidES3ReadFormatType(GLenum internalFormat, GLenum format, GLenum type)
switch
(
type
)
switch
(
type
)
{
{
case
GL_INT
:
case
GL_INT
:
if
(
!
gl
::
IsSignedIntegerFormat
(
internalFormat
,
3
)
)
if
(
gl
::
GetComponentType
(
internalFormat
,
3
)
!=
GL_INT
)
{
{
return
false
;
return
false
;
}
}
break
;
break
;
case
GL_UNSIGNED_INT
:
case
GL_UNSIGNED_INT
:
if
(
!
gl
::
IsUnsignedIntegerFormat
(
internalFormat
,
3
)
)
if
(
gl
::
GetComponentType
(
internalFormat
,
3
)
!=
GL_UNSIGNED_INT
)
{
{
return
false
;
return
false
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment