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
685806d6
Commit
685806d6
authored
Jun 12, 2013
by
Geoff Lang
Committed by
Shannon Woods
Jul 19, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Seperated the blit depthstencil parameters in the blit methods.
TRAC #23321 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Geoff Lang
parent
c1f51be4
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
23 additions
and
24 deletions
+23
-24
Context.cpp
src/libGLESv2/Context.cpp
+6
-5
Renderer.h
src/libGLESv2/renderer/Renderer.h
+1
-1
Renderer11.cpp
src/libGLESv2/renderer/Renderer11.cpp
+10
-12
Renderer11.h
src/libGLESv2/renderer/Renderer11.h
+3
-3
Renderer9.cpp
src/libGLESv2/renderer/Renderer9.cpp
+2
-2
Renderer9.h
src/libGLESv2/renderer/Renderer9.h
+1
-1
No files found.
src/libGLESv2/Context.cpp
View file @
685806d6
...
@@ -3227,18 +3227,19 @@ void Context::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1
...
@@ -3227,18 +3227,19 @@ void Context::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1
Framebuffer
*
drawFramebuffer
=
getDrawFramebuffer
();
Framebuffer
*
drawFramebuffer
=
getDrawFramebuffer
();
bool
blitRenderTarget
=
false
;
bool
blitRenderTarget
=
false
;
bool
blitDepthStencil
=
false
;
bool
blitDepth
=
false
;
bool
blitStencil
=
false
;
if
((
mask
&
GL_COLOR_BUFFER_BIT
)
&&
readFramebuffer
->
getReadColorbuffer
()
&&
drawFramebuffer
->
getFirstColorbuffer
())
if
((
mask
&
GL_COLOR_BUFFER_BIT
)
&&
readFramebuffer
->
getReadColorbuffer
()
&&
drawFramebuffer
->
getFirstColorbuffer
())
{
{
blitRenderTarget
=
true
;
blitRenderTarget
=
true
;
}
}
if
((
mask
&
GL_STENCIL_BUFFER_BIT
)
&&
readFramebuffer
->
getStencilbuffer
()
&&
drawFramebuffer
->
getStencilbuffer
())
if
((
mask
&
GL_STENCIL_BUFFER_BIT
)
&&
readFramebuffer
->
getStencilbuffer
()
&&
drawFramebuffer
->
getStencilbuffer
())
{
{
blit
Depth
Stencil
=
true
;
blitStencil
=
true
;
}
}
if
((
mask
&
GL_DEPTH_BUFFER_BIT
)
&&
readFramebuffer
->
getDepthbuffer
()
&&
drawFramebuffer
->
getDepthbuffer
())
if
((
mask
&
GL_DEPTH_BUFFER_BIT
)
&&
readFramebuffer
->
getDepthbuffer
()
&&
drawFramebuffer
->
getDepthbuffer
())
{
{
blitDepth
Stencil
=
true
;
blitDepth
=
true
;
}
}
gl
::
Rectangle
sourceClippedRect
,
destClippedRect
;
gl
::
Rectangle
sourceClippedRect
,
destClippedRect
;
...
@@ -3249,10 +3250,10 @@ void Context::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1
...
@@ -3249,10 +3250,10 @@ void Context::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1
return
;
return
;
}
}
if
(
blitRenderTarget
||
blitDepthStencil
)
if
(
blitRenderTarget
||
blitDepth
||
blit
Stencil
)
{
{
mRenderer
->
blitRect
(
readFramebuffer
,
sourceClippedRect
,
drawFramebuffer
,
destClippedRect
,
mRenderer
->
blitRect
(
readFramebuffer
,
sourceClippedRect
,
drawFramebuffer
,
destClippedRect
,
blitRenderTarget
,
blitDepthStencil
,
filter
);
blitRenderTarget
,
blitDepth
,
blit
Stencil
,
filter
);
}
}
}
}
...
...
src/libGLESv2/renderer/Renderer.h
View file @
685806d6
...
@@ -221,7 +221,7 @@ class Renderer
...
@@ -221,7 +221,7 @@ class Renderer
GLint
xoffset
,
GLint
yoffset
,
GLint
zOffset
,
TextureStorageInterface2DArray
*
storage
,
GLint
level
)
=
0
;
GLint
xoffset
,
GLint
yoffset
,
GLint
zOffset
,
TextureStorageInterface2DArray
*
storage
,
GLint
level
)
=
0
;
virtual
bool
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
virtual
bool
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
bool
blitRenderTarget
,
bool
blitDepthStencil
,
GLenum
filter
)
=
0
;
bool
blitRenderTarget
,
bool
blitDepth
,
bool
blit
Stencil
,
GLenum
filter
)
=
0
;
virtual
void
readPixels
(
gl
::
Framebuffer
*
framebuffer
,
GLint
x
,
GLint
y
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
virtual
void
readPixels
(
gl
::
Framebuffer
*
framebuffer
,
GLint
x
,
GLint
y
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLsizei
outputPitch
,
bool
packReverseRowOrder
,
GLint
packAlignment
,
void
*
pixels
)
=
0
;
GLsizei
outputPitch
,
bool
packReverseRowOrder
,
GLint
packAlignment
,
void
*
pixels
)
=
0
;
...
...
src/libGLESv2/renderer/Renderer11.cpp
View file @
685806d6
...
@@ -3004,7 +3004,7 @@ bool Renderer11::getRenderTargetResource(gl::Renderbuffer *colorbuffer, unsigned
...
@@ -3004,7 +3004,7 @@ bool Renderer11::getRenderTargetResource(gl::Renderbuffer *colorbuffer, unsigned
}
}
bool
Renderer11
::
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
bool
Renderer11
::
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
bool
blitRenderTarget
,
bool
blitDepthStencil
,
GLenum
filter
)
bool
blitRenderTarget
,
bool
blitDepth
,
bool
blit
Stencil
,
GLenum
filter
)
{
{
if
(
blitRenderTarget
)
if
(
blitRenderTarget
)
{
{
...
@@ -3032,7 +3032,8 @@ bool Renderer11::blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &read
...
@@ -3032,7 +3032,8 @@ bool Renderer11::blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &read
RenderTarget
*
drawRenderTarget
=
drawBuffer
->
getRenderTarget
();
RenderTarget
*
drawRenderTarget
=
drawBuffer
->
getRenderTarget
();
if
(
!
blitRenderbufferRect
(
readRect
,
drawRect
,
readRenderTarget
,
drawRenderTarget
,
filter
))
if
(
!
blitRenderbufferRect
(
readRect
,
drawRect
,
readRenderTarget
,
drawRenderTarget
,
filter
,
blitRenderTarget
,
false
,
false
))
{
{
return
false
;
return
false
;
}
}
...
@@ -3040,7 +3041,7 @@ bool Renderer11::blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &read
...
@@ -3040,7 +3041,7 @@ bool Renderer11::blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &read
}
}
}
}
if
(
blitDepthStencil
)
if
(
blitDepth
||
blit
Stencil
)
{
{
gl
::
Renderbuffer
*
readBuffer
=
readTarget
->
getDepthOrStencilbuffer
();
gl
::
Renderbuffer
*
readBuffer
=
readTarget
->
getDepthOrStencilbuffer
();
gl
::
Renderbuffer
*
drawBuffer
=
drawTarget
->
getDepthOrStencilbuffer
();
gl
::
Renderbuffer
*
drawBuffer
=
drawTarget
->
getDepthOrStencilbuffer
();
...
@@ -3060,7 +3061,8 @@ bool Renderer11::blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &read
...
@@ -3060,7 +3061,8 @@ bool Renderer11::blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &read
RenderTarget
*
readRenderTarget
=
readBuffer
->
getDepthStencil
();
RenderTarget
*
readRenderTarget
=
readBuffer
->
getDepthStencil
();
RenderTarget
*
drawRenderTarget
=
drawBuffer
->
getDepthStencil
();
RenderTarget
*
drawRenderTarget
=
drawBuffer
->
getDepthStencil
();
if
(
!
blitRenderbufferRect
(
readRect
,
drawRect
,
readRenderTarget
,
drawRenderTarget
,
filter
))
if
(
!
blitRenderbufferRect
(
readRect
,
drawRect
,
readRenderTarget
,
drawRenderTarget
,
filter
,
false
,
blitDepth
,
blitStencil
))
{
{
return
false
;
return
false
;
}
}
...
@@ -3291,7 +3293,7 @@ void Renderer11::readTextureData(ID3D11Texture2D *texture, unsigned int subResou
...
@@ -3291,7 +3293,7 @@ void Renderer11::readTextureData(ID3D11Texture2D *texture, unsigned int subResou
}
}
bool
Renderer11
::
blitRenderbufferRect
(
const
gl
::
Rectangle
&
readRect
,
const
gl
::
Rectangle
&
drawRect
,
RenderTarget
*
readRenderTarget
,
bool
Renderer11
::
blitRenderbufferRect
(
const
gl
::
Rectangle
&
readRect
,
const
gl
::
Rectangle
&
drawRect
,
RenderTarget
*
readRenderTarget
,
RenderTarget
*
drawRenderTarget
,
GLenum
filter
)
RenderTarget
*
drawRenderTarget
,
GLenum
filter
,
bool
colorBlit
,
bool
depthBlit
,
bool
stencilBlit
)
{
{
bool
result
=
true
;
bool
result
=
true
;
...
@@ -3359,11 +3361,8 @@ bool Renderer11::blitRenderbufferRect(const gl::Rectangle &readRect, const gl::R
...
@@ -3359,11 +3361,8 @@ bool Renderer11::blitRenderbufferRect(const gl::Rectangle &readRect, const gl::R
bool
stretchRequired
=
readRect
.
width
!=
drawRect
.
width
||
readRect
.
height
!=
drawRect
.
height
;
bool
stretchRequired
=
readRect
.
width
!=
drawRect
.
width
||
readRect
.
height
!=
drawRect
.
height
;
bool
depthStencilBlit
=
gl
::
GetDepthBits
(
readRenderTarget
->
getInternalFormat
(),
getCurrentClientVersion
())
>
0
||
gl
::
GetStencilBits
(
readRenderTarget
->
getInternalFormat
(),
getCurrentClientVersion
())
>
0
;
if
(
readRenderTarget11
->
getActualFormat
()
==
drawRenderTarget
->
getActualFormat
()
&&
if
(
readRenderTarget11
->
getActualFormat
()
==
drawRenderTarget
->
getActualFormat
()
&&
!
stretchRequired
&&
(
!
depthStencilBlit
||
wholeBufferCopy
))
!
stretchRequired
&&
(
!
(
depthBlit
||
stencilBlit
)
||
wholeBufferCopy
))
{
{
D3D11_BOX
readBox
;
D3D11_BOX
readBox
;
readBox
.
left
=
readRect
.
x
;
readBox
.
left
=
readRect
.
x
;
...
@@ -3389,14 +3388,13 @@ bool Renderer11::blitRenderbufferRect(const gl::Rectangle &readRect, const gl::R
...
@@ -3389,14 +3388,13 @@ bool Renderer11::blitRenderbufferRect(const gl::Rectangle &readRect, const gl::R
gl
::
Box
drawArea
(
drawRect
.
x
,
drawRect
.
y
,
0
,
drawRect
.
width
,
drawRect
.
height
,
1
);
gl
::
Box
drawArea
(
drawRect
.
x
,
drawRect
.
y
,
0
,
drawRect
.
width
,
drawRect
.
height
,
1
);
gl
::
Extents
drawSize
(
drawRenderTarget
->
getWidth
(),
drawRenderTarget
->
getHeight
(),
1
);
gl
::
Extents
drawSize
(
drawRenderTarget
->
getWidth
(),
drawRenderTarget
->
getHeight
(),
1
);
GLenum
format
=
gl
::
GetFormat
(
drawRenderTarget
->
getInternalFormat
(),
getCurrentClientVersion
());
if
(
depthBlit
||
stencilBlit
)
if
(
depthStencilBlit
)
{
{
UNIMPLEMENTED
();
UNIMPLEMENTED
();
}
}
else
else
{
{
GLenum
format
=
gl
::
GetFormat
(
drawRenderTarget
->
getInternalFormat
(),
getCurrentClientVersion
());
result
=
mBlit
->
copyTexture
(
readSRV
,
readArea
,
readSize
,
drawRTV
,
drawArea
,
drawSize
,
format
,
filter
);
result
=
mBlit
->
copyTexture
(
readSRV
,
readArea
,
readSize
,
drawRTV
,
drawArea
,
drawSize
,
format
,
filter
);
}
}
}
}
...
...
src/libGLESv2/renderer/Renderer11.h
View file @
685806d6
...
@@ -165,7 +165,7 @@ class Renderer11 : public Renderer
...
@@ -165,7 +165,7 @@ class Renderer11 : public Renderer
GLint
xoffset
,
GLint
yoffset
,
GLint
zOffset
,
TextureStorageInterface2DArray
*
storage
,
GLint
level
);
GLint
xoffset
,
GLint
yoffset
,
GLint
zOffset
,
TextureStorageInterface2DArray
*
storage
,
GLint
level
);
virtual
bool
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
virtual
bool
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
bool
blitRenderTarget
,
bool
blitDepthStencil
,
GLenum
filter
);
bool
blitRenderTarget
,
bool
blitDepth
,
bool
blit
Stencil
,
GLenum
filter
);
virtual
void
readPixels
(
gl
::
Framebuffer
*
framebuffer
,
GLint
x
,
GLint
y
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
virtual
void
readPixels
(
gl
::
Framebuffer
*
framebuffer
,
GLint
x
,
GLint
y
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLsizei
outputPitch
,
bool
packReverseRowOrder
,
GLint
packAlignment
,
void
*
pixels
);
GLsizei
outputPitch
,
bool
packReverseRowOrder
,
GLint
packAlignment
,
void
*
pixels
);
...
@@ -221,8 +221,8 @@ class Renderer11 : public Renderer
...
@@ -221,8 +221,8 @@ class Renderer11 : public Renderer
void
maskedClear
(
const
gl
::
ClearParameters
&
clearParams
,
bool
usingExtendedDrawBuffers
);
void
maskedClear
(
const
gl
::
ClearParameters
&
clearParams
,
bool
usingExtendedDrawBuffers
);
rx
::
Range
getViewportBounds
()
const
;
rx
::
Range
getViewportBounds
()
const
;
bool
blitRenderbufferRect
(
const
gl
::
Rectangle
&
readRect
,
const
gl
::
Rectangle
&
drawRect
,
RenderTarget
*
readRenderTarget
,
bool
blitRenderbufferRect
(
const
gl
::
Rectangle
&
readRect
,
const
gl
::
Rectangle
&
drawRect
,
RenderTarget
*
readRenderTarget
,
RenderTarget
*
drawRenderTarget
,
GLenum
filter
);
RenderTarget
*
drawRenderTarget
,
GLenum
filter
,
bool
colorBlit
,
bool
depthBlit
,
bool
stencilBlit
);
ID3D11Texture2D
*
resolveMultisampledTexture
(
ID3D11Texture2D
*
source
,
unsigned
int
subresource
);
ID3D11Texture2D
*
resolveMultisampledTexture
(
ID3D11Texture2D
*
source
,
unsigned
int
subresource
);
HMODULE
mD3d11Module
;
HMODULE
mD3d11Module
;
...
...
src/libGLESv2/renderer/Renderer9.cpp
View file @
685806d6
...
@@ -2663,7 +2663,7 @@ bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sou
...
@@ -2663,7 +2663,7 @@ bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sou
}
}
bool
Renderer9
::
blitRect
(
gl
::
Framebuffer
*
readFramebuffer
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawFramebuffer
,
const
gl
::
Rectangle
&
drawRect
,
bool
Renderer9
::
blitRect
(
gl
::
Framebuffer
*
readFramebuffer
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawFramebuffer
,
const
gl
::
Rectangle
&
drawRect
,
bool
blitRenderTarget
,
bool
blitDepthStencil
,
GLenum
filter
)
bool
blitRenderTarget
,
bool
blitDepth
,
bool
blit
Stencil
,
GLenum
filter
)
{
{
ASSERT
(
filter
==
GL_NEAREST
);
ASSERT
(
filter
==
GL_NEAREST
);
...
@@ -2726,7 +2726,7 @@ bool Renderer9::blitRect(gl::Framebuffer *readFramebuffer, const gl::Rectangle &
...
@@ -2726,7 +2726,7 @@ bool Renderer9::blitRect(gl::Framebuffer *readFramebuffer, const gl::Rectangle &
}
}
}
}
if
(
blitDepthStencil
)
if
(
blitDepth
||
blit
Stencil
)
{
{
gl
::
Renderbuffer
*
readBuffer
=
readFramebuffer
->
getDepthOrStencilbuffer
();
gl
::
Renderbuffer
*
readBuffer
=
readFramebuffer
->
getDepthOrStencilbuffer
();
gl
::
Renderbuffer
*
drawBuffer
=
drawFramebuffer
->
getDepthOrStencilbuffer
();
gl
::
Renderbuffer
*
drawBuffer
=
drawFramebuffer
->
getDepthOrStencilbuffer
();
...
...
src/libGLESv2/renderer/Renderer9.h
View file @
685806d6
...
@@ -183,7 +183,7 @@ class Renderer9 : public Renderer
...
@@ -183,7 +183,7 @@ class Renderer9 : public Renderer
GLint
xoffset
,
GLint
yoffset
,
GLint
zOffset
,
TextureStorageInterface2DArray
*
storage
,
GLint
level
);
GLint
xoffset
,
GLint
yoffset
,
GLint
zOffset
,
TextureStorageInterface2DArray
*
storage
,
GLint
level
);
virtual
bool
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
virtual
bool
blitRect
(
gl
::
Framebuffer
*
readTarget
,
const
gl
::
Rectangle
&
readRect
,
gl
::
Framebuffer
*
drawTarget
,
const
gl
::
Rectangle
&
drawRect
,
bool
blitRenderTarget
,
bool
blitDepthStencil
,
GLenum
filter
);
bool
blitRenderTarget
,
bool
blitDepth
,
bool
blit
Stencil
,
GLenum
filter
);
virtual
void
readPixels
(
gl
::
Framebuffer
*
framebuffer
,
GLint
x
,
GLint
y
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
virtual
void
readPixels
(
gl
::
Framebuffer
*
framebuffer
,
GLint
x
,
GLint
y
,
GLsizei
width
,
GLsizei
height
,
GLenum
format
,
GLenum
type
,
GLsizei
outputPitch
,
bool
packReverseRowOrder
,
GLint
packAlignment
,
void
*
pixels
);
GLsizei
outputPitch
,
bool
packReverseRowOrder
,
GLint
packAlignment
,
void
*
pixels
);
...
...
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