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
68ae299a
Commit
68ae299a
authored
Nov 09, 2011
by
daniel@transgaming.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactored redefine.
TRAC #18714 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id:
https://angleproject.googlecode.com/svn/trunk@822
736b8ea6-26fd-11df-bfd4-992fa37f6226
parent
31e22e1d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
40 deletions
+34
-40
Texture.cpp
src/libGLESv2/Texture.cpp
+31
-38
Texture.h
src/libGLESv2/Texture.h
+3
-2
No files found.
src/libGLESv2/Texture.cpp
View file @
68ae299a
...
@@ -1535,26 +1535,31 @@ D3DFORMAT Texture2D::getD3DFormat() const
...
@@ -1535,26 +1535,31 @@ D3DFORMAT Texture2D::getD3DFormat() const
return
mImageArray
[
0
].
getD3DFormat
();
return
mImageArray
[
0
].
getD3DFormat
();
}
}
void
Texture2D
::
redefineTexture
(
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
,
bool
forceRedefine
)
void
Texture
::
Image
::
redefine
(
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
)
{
this
->
width
=
width
;
this
->
height
=
height
;
this
->
format
=
format
;
this
->
type
=
type
;
if
(
surface
)
{
surface
->
Release
();
surface
=
NULL
;
dirty
=
true
;
}
createSurface
();
}
void
Texture2D
::
redefineImage
(
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
,
bool
forceRedefine
)
{
{
GLsizei
textureWidth
=
mImageArray
[
0
].
width
;
GLsizei
textureWidth
=
mImageArray
[
0
].
width
;
GLsizei
textureHeight
=
mImageArray
[
0
].
height
;
GLsizei
textureHeight
=
mImageArray
[
0
].
height
;
GLenum
textureFormat
=
mImageArray
[
0
].
format
;
GLenum
textureFormat
=
mImageArray
[
0
].
format
;
GLenum
textureType
=
mImageArray
[
0
].
type
;
GLenum
textureType
=
mImageArray
[
0
].
type
;
mImageArray
[
level
].
width
=
width
;
mImageArray
[
level
].
redefine
(
format
,
width
,
height
,
type
);
mImageArray
[
level
].
height
=
height
;
mImageArray
[
level
].
format
=
format
;
mImageArray
[
level
].
type
=
type
;
if
(
mImageArray
[
level
].
surface
!=
NULL
)
{
mImageArray
[
level
].
surface
->
Release
();
mImageArray
[
level
].
surface
=
NULL
;
mImageArray
[
level
].
dirty
=
true
;
}
mImageArray
[
level
].
createSurface
();
if
(
!
mTexture
)
if
(
!
mTexture
)
{
{
...
@@ -1592,7 +1597,7 @@ void Texture2D::redefineTexture(GLint level, GLenum format, GLsizei width, GLsiz
...
@@ -1592,7 +1597,7 @@ void Texture2D::redefineTexture(GLint level, GLenum format, GLsizei width, GLsiz
void
Texture2D
::
setImage
(
GLint
level
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLint
unpackAlignment
,
const
void
*
pixels
)
void
Texture2D
::
setImage
(
GLint
level
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLint
unpackAlignment
,
const
void
*
pixels
)
{
{
redefine
Textur
e
(
level
,
format
,
width
,
height
,
type
,
false
);
redefine
Imag
e
(
level
,
format
,
width
,
height
,
type
,
false
);
Texture
::
setImage
(
unpackAlignment
,
pixels
,
&
mImageArray
[
level
]);
Texture
::
setImage
(
unpackAlignment
,
pixels
,
&
mImageArray
[
level
]);
}
}
...
@@ -1614,7 +1619,7 @@ void Texture2D::bindTexImage(egl::Surface *surface)
...
@@ -1614,7 +1619,7 @@ void Texture2D::bindTexImage(egl::Surface *surface)
return
;
return
;
}
}
redefine
Textur
e
(
0
,
format
,
surface
->
getWidth
(),
surface
->
getHeight
(),
GL_UNSIGNED_BYTE
,
true
);
redefine
Imag
e
(
0
,
format
,
surface
->
getWidth
(),
surface
->
getHeight
(),
GL_UNSIGNED_BYTE
,
true
);
IDirect3DTexture9
*
texture
=
surface
->
getOffscreenTexture
();
IDirect3DTexture9
*
texture
=
surface
->
getOffscreenTexture
();
...
@@ -1627,12 +1632,12 @@ void Texture2D::bindTexImage(egl::Surface *surface)
...
@@ -1627,12 +1632,12 @@ void Texture2D::bindTexImage(egl::Surface *surface)
void
Texture2D
::
releaseTexImage
()
void
Texture2D
::
releaseTexImage
()
{
{
redefine
Textur
e
(
0
,
GL_RGB
,
0
,
0
,
GL_UNSIGNED_BYTE
,
true
);
redefine
Imag
e
(
0
,
GL_RGB
,
0
,
0
,
GL_UNSIGNED_BYTE
,
true
);
}
}
void
Texture2D
::
setCompressedImage
(
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLsizei
imageSize
,
const
void
*
pixels
)
void
Texture2D
::
setCompressedImage
(
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLsizei
imageSize
,
const
void
*
pixels
)
{
{
redefine
Textur
e
(
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
,
false
);
redefine
Imag
e
(
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
,
false
);
Texture
::
setCompressedImage
(
imageSize
,
pixels
,
&
mImageArray
[
level
]);
Texture
::
setCompressedImage
(
imageSize
,
pixels
,
&
mImageArray
[
level
]);
}
}
...
@@ -1691,7 +1696,7 @@ void Texture2D::copyImage(GLint level, GLenum format, GLint x, GLint y, GLsizei
...
@@ -1691,7 +1696,7 @@ void Texture2D::copyImage(GLint level, GLenum format, GLint x, GLint y, GLsizei
return
error
(
GL_OUT_OF_MEMORY
);
return
error
(
GL_OUT_OF_MEMORY
);
}
}
redefine
Textur
e
(
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
,
false
);
redefine
Imag
e
(
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
,
false
);
if
(
!
mImageArray
[
level
].
isRenderable
())
if
(
!
mImageArray
[
level
].
isRenderable
())
{
{
...
@@ -1740,7 +1745,7 @@ void Texture2D::copySubImage(GLenum target, GLint level, GLint xoffset, GLint yo
...
@@ -1740,7 +1745,7 @@ void Texture2D::copySubImage(GLenum target, GLint level, GLint xoffset, GLint yo
return
error
(
GL_OUT_OF_MEMORY
);
return
error
(
GL_OUT_OF_MEMORY
);
}
}
redefine
Textur
e
(
level
,
mImageArray
[
level
].
format
,
mImageArray
[
level
].
width
,
mImageArray
[
level
].
height
,
GL_UNSIGNED_BYTE
,
false
);
redefine
Imag
e
(
level
,
mImageArray
[
level
].
format
,
mImageArray
[
level
].
width
,
mImageArray
[
level
].
height
,
GL_UNSIGNED_BYTE
,
false
);
if
(
!
mImageArray
[
level
].
isRenderable
()
||
(
!
mTexture
&&
!
isComplete
()))
if
(
!
mImageArray
[
level
].
isRenderable
()
||
(
!
mTexture
&&
!
isComplete
()))
{
{
...
@@ -2183,7 +2188,7 @@ void TextureCubeMap::setImageNegZ(GLint level, GLsizei width, GLsizei height, GL
...
@@ -2183,7 +2188,7 @@ void TextureCubeMap::setImageNegZ(GLint level, GLsizei width, GLsizei height, GL
void
TextureCubeMap
::
setCompressedImage
(
GLenum
face
,
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLsizei
imageSize
,
const
void
*
pixels
)
void
TextureCubeMap
::
setCompressedImage
(
GLenum
face
,
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLsizei
imageSize
,
const
void
*
pixels
)
{
{
redefine
Textur
e
(
faceIndex
(
face
),
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
);
redefine
Imag
e
(
faceIndex
(
face
),
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
);
Texture
::
setCompressedImage
(
imageSize
,
pixels
,
&
mImageArray
[
faceIndex
(
face
)][
level
]);
Texture
::
setCompressedImage
(
imageSize
,
pixels
,
&
mImageArray
[
faceIndex
(
face
)][
level
]);
}
}
...
@@ -2460,7 +2465,7 @@ void TextureCubeMap::convertToRenderTarget()
...
@@ -2460,7 +2465,7 @@ void TextureCubeMap::convertToRenderTarget()
void
TextureCubeMap
::
setImage
(
int
faceIndex
,
GLint
level
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLint
unpackAlignment
,
const
void
*
pixels
)
void
TextureCubeMap
::
setImage
(
int
faceIndex
,
GLint
level
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLint
unpackAlignment
,
const
void
*
pixels
)
{
{
redefine
Textur
e
(
faceIndex
,
level
,
format
,
width
,
height
,
type
);
redefine
Imag
e
(
faceIndex
,
level
,
format
,
width
,
height
,
type
);
Texture
::
setImage
(
unpackAlignment
,
pixels
,
&
mImageArray
[
faceIndex
][
level
]);
Texture
::
setImage
(
unpackAlignment
,
pixels
,
&
mImageArray
[
faceIndex
][
level
]);
}
}
...
@@ -2476,26 +2481,14 @@ unsigned int TextureCubeMap::faceIndex(GLenum face)
...
@@ -2476,26 +2481,14 @@ unsigned int TextureCubeMap::faceIndex(GLenum face)
return
face
-
GL_TEXTURE_CUBE_MAP_POSITIVE_X
;
return
face
-
GL_TEXTURE_CUBE_MAP_POSITIVE_X
;
}
}
void
TextureCubeMap
::
redefine
Textur
e
(
int
face
,
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
)
void
TextureCubeMap
::
redefine
Imag
e
(
int
face
,
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
)
{
{
GLsizei
textureWidth
=
mImageArray
[
0
][
0
].
width
;
GLsizei
textureWidth
=
mImageArray
[
0
][
0
].
width
;
GLsizei
textureHeight
=
mImageArray
[
0
][
0
].
height
;
GLsizei
textureHeight
=
mImageArray
[
0
][
0
].
height
;
GLenum
textureFormat
=
mImageArray
[
0
][
0
].
format
;
GLenum
textureFormat
=
mImageArray
[
0
][
0
].
format
;
GLenum
textureType
=
mImageArray
[
0
][
0
].
type
;
GLenum
textureType
=
mImageArray
[
0
][
0
].
type
;
mImageArray
[
face
][
level
].
width
=
width
;
mImageArray
[
face
][
level
].
redefine
(
format
,
width
,
height
,
type
);
mImageArray
[
face
][
level
].
height
=
height
;
mImageArray
[
face
][
level
].
format
=
format
;
mImageArray
[
face
][
level
].
type
=
type
;
if
(
mImageArray
[
face
][
level
].
surface
!=
NULL
)
{
mImageArray
[
face
][
level
].
surface
->
Release
();
mImageArray
[
face
][
level
].
surface
=
NULL
;
mImageArray
[
face
][
level
].
dirty
=
true
;
}
mImageArray
[
face
][
level
].
createSurface
();
if
(
!
mTexture
)
if
(
!
mTexture
)
{
{
...
@@ -2536,7 +2529,7 @@ void TextureCubeMap::copyImage(GLenum target, GLint level, GLenum format, GLint
...
@@ -2536,7 +2529,7 @@ void TextureCubeMap::copyImage(GLenum target, GLint level, GLenum format, GLint
}
}
unsigned
int
faceindex
=
faceIndex
(
target
);
unsigned
int
faceindex
=
faceIndex
(
target
);
redefine
Textur
e
(
faceindex
,
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
);
redefine
Imag
e
(
faceindex
,
level
,
format
,
width
,
height
,
GL_UNSIGNED_BYTE
);
if
(
!
mImageArray
[
faceindex
][
level
].
isRenderable
())
if
(
!
mImageArray
[
faceindex
][
level
].
isRenderable
())
{
{
...
@@ -2604,7 +2597,7 @@ void TextureCubeMap::copySubImage(GLenum target, GLint level, GLint xoffset, GLi
...
@@ -2604,7 +2597,7 @@ void TextureCubeMap::copySubImage(GLenum target, GLint level, GLint xoffset, GLi
}
}
unsigned
int
faceindex
=
faceIndex
(
target
);
unsigned
int
faceindex
=
faceIndex
(
target
);
redefine
Textur
e
(
faceindex
,
level
,
mImageArray
[
faceindex
][
level
].
format
,
mImageArray
[
faceindex
][
level
].
width
,
mImageArray
[
faceindex
][
level
].
height
,
GL_UNSIGNED_BYTE
);
redefine
Imag
e
(
faceindex
,
level
,
mImageArray
[
faceindex
][
level
].
format
,
mImageArray
[
faceindex
][
level
].
width
,
mImageArray
[
faceindex
][
level
].
height
,
GL_UNSIGNED_BYTE
);
if
(
!
mImageArray
[
faceindex
][
level
].
isRenderable
()
||
(
!
mTexture
&&
!
isComplete
()))
if
(
!
mImageArray
[
faceindex
][
level
].
isRenderable
()
||
(
!
mTexture
&&
!
isComplete
()))
{
{
...
...
src/libGLESv2/Texture.h
View file @
68ae299a
...
@@ -93,6 +93,7 @@ class Texture : public RefCountObject
...
@@ -93,6 +93,7 @@ class Texture : public RefCountObject
Image
();
Image
();
~
Image
();
~
Image
();
void
redefine
(
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
);
void
createSurface
();
void
createSurface
();
bool
isRenderable
()
const
;
bool
isRenderable
()
const
;
...
@@ -239,7 +240,7 @@ class Texture2D : public Texture
...
@@ -239,7 +240,7 @@ class Texture2D : public Texture
virtual
void
convertToRenderTarget
();
virtual
void
convertToRenderTarget
();
virtual
IDirect3DSurface9
*
getRenderTarget
(
GLenum
target
);
virtual
IDirect3DSurface9
*
getRenderTarget
(
GLenum
target
);
void
redefine
Textur
e
(
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
,
bool
force
);
void
redefine
Imag
e
(
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
,
bool
force
);
void
commitRect
(
GLint
level
,
GLint
xoffset
,
GLint
yoffset
,
GLsizei
width
,
GLsizei
height
);
void
commitRect
(
GLint
level
,
GLint
xoffset
,
GLint
yoffset
,
GLsizei
width
,
GLsizei
height
);
Image
mImageArray
[
IMPLEMENTATION_MAX_TEXTURE_LEVELS
];
Image
mImageArray
[
IMPLEMENTATION_MAX_TEXTURE_LEVELS
];
...
@@ -305,7 +306,7 @@ class TextureCubeMap : public Texture
...
@@ -305,7 +306,7 @@ class TextureCubeMap : public Texture
void
setImage
(
int
faceIndex
,
GLint
level
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLint
unpackAlignment
,
const
void
*
pixels
);
void
setImage
(
int
faceIndex
,
GLint
level
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLint
unpackAlignment
,
const
void
*
pixels
);
void
commitRect
(
int
faceIndex
,
GLint
level
,
GLint
xoffset
,
GLint
yoffset
,
GLsizei
width
,
GLsizei
height
);
void
commitRect
(
int
faceIndex
,
GLint
level
,
GLint
xoffset
,
GLint
yoffset
,
GLsizei
width
,
GLsizei
height
);
void
redefine
Textur
e
(
int
faceIndex
,
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
);
void
redefine
Imag
e
(
int
faceIndex
,
GLint
level
,
GLenum
format
,
GLsizei
width
,
GLsizei
height
,
GLenum
type
);
Image
mImageArray
[
6
][
IMPLEMENTATION_MAX_TEXTURE_LEVELS
];
Image
mImageArray
[
6
][
IMPLEMENTATION_MAX_TEXTURE_LEVELS
];
...
...
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