Split the swap chain into an abstract interface and a D3D9 implementation.

TRAC #21926 Signed-off-by: Daniel Koch Signed-off-by: Geoff Lang Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1445 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 6c872174
...@@ -272,6 +272,8 @@ ...@@ -272,6 +272,8 @@
'libGLESv2/renderer/ShaderCache.h', 'libGLESv2/renderer/ShaderCache.h',
'libGLESv2/renderer/SwapChain.cpp', 'libGLESv2/renderer/SwapChain.cpp',
'libGLESv2/renderer/SwapChain.h', 'libGLESv2/renderer/SwapChain.h',
'libGLESv2/renderer/SwapChain9.cpp',
'libGLESv2/renderer/SwapChain9.h',
'libGLESv2/renderer/TextureStorage.cpp', 'libGLESv2/renderer/TextureStorage.cpp',
'libGLESv2/renderer/TextureStorage.h', 'libGLESv2/renderer/TextureStorage.h',
'libGLESv2/renderer/RenderStateCache.cpp', 'libGLESv2/renderer/RenderStateCache.cpp',
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "libGLESv2/utilities.h" #include "libGLESv2/utilities.h"
#include "libGLESv2/renderer/RenderTarget9.h" // D3D9_REPLACE #include "libGLESv2/renderer/RenderTarget9.h" // D3D9_REPLACE
#include "libGLESv2/renderer/SwapChain9.h" // D3D9_REPLACE
#include "libGLESv2/renderer/renderer9_utils.h" // D3D9_REPLACE #include "libGLESv2/renderer/renderer9_utils.h" // D3D9_REPLACE
namespace gl namespace gl
...@@ -384,7 +385,8 @@ unsigned int RenderbufferStorage::issueCubeSerials() ...@@ -384,7 +385,8 @@ unsigned int RenderbufferStorage::issueCubeSerials()
Colorbuffer::Colorbuffer(rx::Renderer *renderer, rx::SwapChain *swapChain) Colorbuffer::Colorbuffer(rx::Renderer *renderer, rx::SwapChain *swapChain)
{ {
mRenderTarget = new rx::RenderTarget9(renderer, swapChain->getRenderTarget()); rx::SwapChain9 *swapChain9 = static_cast<rx::SwapChain9*>(swapChain);
mRenderTarget = new rx::RenderTarget9(renderer, swapChain9->getRenderTarget());
if (mRenderTarget) if (mRenderTarget)
{ {
mWidth = mRenderTarget->getWidth(); mWidth = mRenderTarget->getWidth();
...@@ -432,7 +434,8 @@ IDirect3DSurface9 *Colorbuffer::getRenderTarget() ...@@ -432,7 +434,8 @@ IDirect3DSurface9 *Colorbuffer::getRenderTarget()
DepthStencilbuffer::DepthStencilbuffer(rx::Renderer *renderer, rx::SwapChain *swapChain) DepthStencilbuffer::DepthStencilbuffer(rx::Renderer *renderer, rx::SwapChain *swapChain)
{ {
mDepthStencil = new rx::RenderTarget9(renderer, swapChain->getDepthStencil()); rx::SwapChain9 *swapChain9 = static_cast<rx::SwapChain9*>(swapChain);
mDepthStencil = new rx::RenderTarget9(renderer, swapChain9->getDepthStencil());
if (mDepthStencil) if (mDepthStencil)
{ {
mWidth = mDepthStencil->getWidth(); mWidth = mDepthStencil->getWidth();
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "libGLESv2/mathutil.h" #include "libGLESv2/mathutil.h"
#include "libGLESv2/utilities.h" #include "libGLESv2/utilities.h"
#include "libGLESv2/renderer/Blit.h" #include "libGLESv2/renderer/Blit.h"
#include "libGLESv2/renderer/SwapChain9.h"
#include "libGLESv2/Framebuffer.h" #include "libGLESv2/Framebuffer.h"
namespace gl namespace gl
...@@ -441,7 +442,7 @@ void Texture2D::bindTexImage(egl::Surface *surface) ...@@ -441,7 +442,7 @@ void Texture2D::bindTexImage(egl::Surface *surface)
mImageArray[0].redefine(renderer9, internalformat, surface->getWidth(), surface->getHeight(), true); mImageArray[0].redefine(renderer9, internalformat, surface->getWidth(), surface->getHeight(), true);
delete mTexStorage; delete mTexStorage;
rx::SwapChain *swapchain = surface->getSwapChain(); // D3D9_REPLACE rx::SwapChain9 *swapchain = static_cast<rx::SwapChain9*>(surface->getSwapChain()); // D3D9_REPLACE
mTexStorage = new rx::TextureStorage2D(renderer9, swapchain); mTexStorage = new rx::TextureStorage2D(renderer9, swapchain);
mDirtyImages = true; mDirtyImages = true;
......
...@@ -251,10 +251,10 @@ copy "$(OutDir)libGLESv2.lib" "$(ProjectDir)..\..\lib\$(Configuration)\" ...@@ -251,10 +251,10 @@ copy "$(OutDir)libGLESv2.lib" "$(ProjectDir)..\..\lib\$(Configuration)\"
<ClCompile Include="renderer\renderer11_utils.cpp" /> <ClCompile Include="renderer\renderer11_utils.cpp" />
<ClCompile Include="renderer\Renderer9.cpp" /> <ClCompile Include="renderer\Renderer9.cpp" />
<ClCompile Include="renderer\Image.cpp" /> <ClCompile Include="renderer\Image.cpp" />
<ClCompile Include="renderer\renderer9_utils.cpp" /> <ClCompile Include="renderer\renderer9_utils.cpp" />
<ClCompile Include="renderer\RenderTarget9.cpp" /> <ClCompile Include="renderer\RenderTarget9.cpp" />
<ClCompile Include="renderer\RenderStateCache.cpp" /> <ClCompile Include="renderer\RenderStateCache.cpp" />
<ClCompile Include="renderer\SwapChain.cpp" /> <ClCompile Include="renderer\SwapChain9.cpp" />
<ClCompile Include="renderer\TextureStorage.cpp" /> <ClCompile Include="renderer\TextureStorage.cpp" />
<ClCompile Include="ResourceManager.cpp" /> <ClCompile Include="ResourceManager.cpp" />
<ClCompile Include="Shader.cpp" /> <ClCompile Include="Shader.cpp" />
...@@ -290,12 +290,13 @@ copy "$(OutDir)libGLESv2.lib" "$(ProjectDir)..\..\lib\$(Configuration)\" ...@@ -290,12 +290,13 @@ copy "$(OutDir)libGLESv2.lib" "$(ProjectDir)..\..\lib\$(Configuration)\"
<ClInclude Include="renderer\Renderer11.h" /> <ClInclude Include="renderer\Renderer11.h" />
<ClInclude Include="renderer\renderer11_utils.h" /> <ClInclude Include="renderer\renderer11_utils.h" />
<ClInclude Include="renderer\Renderer9.h" /> <ClInclude Include="renderer\Renderer9.h" />
<ClInclude Include="renderer\renderer9_utils.h" /> <ClInclude Include="renderer\renderer9_utils.h" />
<ClInclude Include="renderer\RenderTarget.h" /> <ClInclude Include="renderer\RenderTarget.h" />
<ClInclude Include="renderer\RenderTarget9.h" /> <ClInclude Include="renderer\RenderTarget9.h" />
<ClInclude Include="renderer\RenderStateCache.h" /> <ClInclude Include="renderer\RenderStateCache.h" />
<ClInclude Include="renderer\ShaderCache.h" /> <ClInclude Include="renderer\ShaderCache.h" />
<ClInclude Include="renderer\SwapChain.h" /> <ClInclude Include="renderer\SwapChain.h" />
<ClInclude Include="renderer\SwapChain9.h" />
<ClInclude Include="renderer\TextureStorage.h" /> <ClInclude Include="renderer\TextureStorage.h" />
<ClInclude Include="resource.h" /> <ClInclude Include="resource.h" />
<ClInclude Include="ResourceManager.h" /> <ClInclude Include="ResourceManager.h" />
......
...@@ -86,9 +86,6 @@ ...@@ -86,9 +86,6 @@
<ClCompile Include="VertexDataManager.cpp"> <ClCompile Include="VertexDataManager.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="renderer\SwapChain.cpp">
<Filter>Renderer</Filter>
</ClCompile>
<ClCompile Include="renderer\Renderer9.cpp"> <ClCompile Include="renderer\Renderer9.cpp">
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClCompile> </ClCompile>
...@@ -111,16 +108,19 @@ ...@@ -111,16 +108,19 @@
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="renderer\Blit.cpp"> <ClCompile Include="renderer\Blit.cpp">
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="renderer\SwapChain9.cpp">
<Filter>Renderer</Filter>
</ClCompile>
<ClCompile Include="renderer\RenderTarget9.cpp"> <ClCompile Include="renderer\RenderTarget9.cpp">
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="renderer\RenderStateCache.cpp"> <ClCompile Include="renderer\RenderStateCache.cpp">
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\third_party\murmurhash\MurmurHash3.cpp"> <ClCompile Include="..\third_party\murmurhash\MurmurHash3.cpp">
<Filter>Third Party\MurmurHash</Filter> <Filter>Third Party\MurmurHash</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
...@@ -234,18 +234,21 @@ ...@@ -234,18 +234,21 @@
</ClInclude> </ClInclude>
<ClInclude Include="angletypes.h"> <ClInclude Include="angletypes.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="renderer\SwapChain9.h">
<Filter>Renderer</Filter>
</ClInclude>
<ClInclude Include="renderer\RenderTarget.h"> <ClInclude Include="renderer\RenderTarget.h">
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="renderer\RenderTarget9.h"> <ClInclude Include="renderer\RenderTarget9.h">
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="renderer\RenderStateCache.h"> <ClInclude Include="renderer\RenderStateCache.h">
<Filter>Renderer</Filter> <Filter>Renderer</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\third_party\murmurhash\MurmurHash3.h"> <ClInclude Include="..\third_party\murmurhash\MurmurHash3.h">
<Filter>Third Party\MurmurHash</Filter> <Filter>Third Party\MurmurHash</Filter>
</ClInclude> </ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
...@@ -256,4 +259,4 @@ ...@@ -256,4 +259,4 @@
<ItemGroup> <ItemGroup>
<ResourceCompile Include="libGLESv2.rc" /> <ResourceCompile Include="libGLESv2.rc" />
</ItemGroup> </ItemGroup>
</Project> </Project>
\ No newline at end of file
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
#include "common/angleutils.h" #include "common/angleutils.h"
struct IDirect3DSurface9; // D3D9_REPLACE
namespace rx namespace rx
{ {
class RenderTarget class RenderTarget
...@@ -29,7 +31,7 @@ class RenderTarget ...@@ -29,7 +31,7 @@ class RenderTarget
GLenum getActualFormat() { return mActualFormat; } GLenum getActualFormat() { return mActualFormat; }
GLsizei getSamples() { return mSamples; } GLsizei getSamples() { return mSamples; }
virtual IDirect3DSurface9 *getSurface() = 0; // D3D9_REPLACE - temporary pass-through function virtual IDirect3DSurface9 *getSurface() = 0; // D3D9_REPLACE - temporary pass-through function
struct Desc { struct Desc {
GLsizei width; GLsizei width;
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "libGLESv2/Framebuffer.h" #include "libGLESv2/Framebuffer.h"
#include "libGLESv2/renderer/Renderer9.h" #include "libGLESv2/renderer/Renderer9.h"
#include "libGLESv2/renderer/renderer9_utils.h" #include "libGLESv2/renderer/renderer9_utils.h"
#include "libGLESv2/renderer/SwapChain9.h"
#include "libGLESv2/renderer/TextureStorage.h" #include "libGLESv2/renderer/TextureStorage.h"
#include "libGLESv2/renderer/Image.h" #include "libGLESv2/renderer/Image.h"
#include "libGLESv2/renderer/Blit.h" #include "libGLESv2/renderer/Blit.h"
...@@ -504,7 +505,7 @@ void Renderer9::sync(bool block) ...@@ -504,7 +505,7 @@ void Renderer9::sync(bool block)
SwapChain *Renderer9::createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) SwapChain *Renderer9::createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat)
{ {
return new rx::SwapChain(this, window, shareHandle, backBufferFormat, depthBufferFormat); return new rx::SwapChain9(this, window, shareHandle, backBufferFormat, depthBufferFormat);
} }
// D3D9_REPLACE // D3D9_REPLACE
......
...@@ -16,47 +16,30 @@ ...@@ -16,47 +16,30 @@
#define EGLAPI #define EGLAPI
#include <EGL/egl.h> #include <EGL/egl.h>
#include <d3d9.h> // D3D9_REPLACE
#include "common/angleutils.h" #include "common/angleutils.h"
namespace rx namespace rx
{ {
class Renderer9; // D3D9_REPLACE
class SwapChain class SwapChain
{ {
public: public:
SwapChain(Renderer9 *renderer, HWND window, HANDLE shareHandle, SwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat)
GLenum backBufferFormat, GLenum depthBufferFormat); : mWindow(window), mShareHandle(shareHandle), mBackBufferFormat(backBufferFormat), mDepthBufferFormat(depthBufferFormat)
virtual ~SwapChain(); {
}
virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval);
virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height);
virtual IDirect3DSurface9 *getRenderTarget();
virtual IDirect3DSurface9 *getDepthStencil();
virtual IDirect3DTexture9 *getOffscreenTexture();
HANDLE getShareHandle() { return mShareHandle; }
private: virtual ~SwapChain() {};
DISALLOW_COPY_AND_ASSIGN(SwapChain);
void release(); virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval) = 0;
virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height) = 0;
Renderer9 *mRenderer; // D3D9_REPLACE virtual HANDLE getShareHandle() {return mShareHandle;};
EGLint mHeight;
EGLint mWidth;
protected:
const HWND mWindow; // Window that the surface is created for. const HWND mWindow; // Window that the surface is created for.
const GLenum mBackBufferFormat; const GLenum mBackBufferFormat;
const GLenum mDepthBufferFormat; const GLenum mDepthBufferFormat;
IDirect3DSwapChain9 *mSwapChain;
IDirect3DSurface9 *mBackBuffer;
IDirect3DSurface9 *mDepthStencil;
IDirect3DSurface9* mRenderTarget;
IDirect3DTexture9* mOffscreenTexture;
HANDLE mShareHandle; HANDLE mShareHandle;
}; };
......
...@@ -4,25 +4,24 @@ ...@@ -4,25 +4,24 @@
// found in the LICENSE file. // found in the LICENSE file.
// //
// SwapChain.cpp: Implements a back-end specific class that hides the details of the // SwapChain9.cpp: Implements a back-end specific class for the D3D9 swap chain.
// implementation-specific swapchain.
#include "libGLESv2/renderer/SwapChain.h" #include "libGLESv2/renderer/SwapChain9.h"
#include "common/debug.h" #include "common/debug.h"
#include "libGLESv2/utilities.h" #include "libGLESv2/utilities.h"
#include "libGLESv2/renderer/renderer9_utils.h" // D3D9_REPLACE #include "libGLESv2/renderer/renderer9_utils.h"
#include "libGLESv2/renderer/Renderer9.h" // D3D9_REPLACE #include "libGLESv2/renderer/Renderer9.h"
#include "libGLESv2/renderer/RenderTarget9.h"
#include "libGLESv2/Context.h" #include "libGLESv2/Context.h"
#include "libGLESv2/main.h" #include "libGLESv2/main.h"
namespace rx namespace rx
{ {
SwapChain::SwapChain(Renderer9 *renderer, HWND window, HANDLE shareHandle, SwapChain9::SwapChain9(Renderer9 *renderer, HWND window, HANDLE shareHandle,
GLenum backBufferFormat, GLenum depthBufferFormat) GLenum backBufferFormat, GLenum depthBufferFormat)
: mRenderer(renderer), mWindow(window), mShareHandle(shareHandle), : mRenderer(renderer), SwapChain(window, shareHandle, backBufferFormat, depthBufferFormat)
mBackBufferFormat(backBufferFormat), mDepthBufferFormat(depthBufferFormat)
{ {
mSwapChain = NULL; mSwapChain = NULL;
mBackBuffer = NULL; mBackBuffer = NULL;
...@@ -33,12 +32,12 @@ SwapChain::SwapChain(Renderer9 *renderer, HWND window, HANDLE shareHandle, ...@@ -33,12 +32,12 @@ SwapChain::SwapChain(Renderer9 *renderer, HWND window, HANDLE shareHandle,
mHeight = -1; mHeight = -1;
} }
SwapChain::~SwapChain() SwapChain9::~SwapChain9()
{ {
release(); release();
} }
void SwapChain::release() void SwapChain9::release()
{ {
if (mSwapChain) if (mSwapChain)
{ {
...@@ -89,8 +88,7 @@ static DWORD convertInterval(EGLint interval) ...@@ -89,8 +88,7 @@ static DWORD convertInterval(EGLint interval)
return D3DPRESENT_INTERVAL_DEFAULT; return D3DPRESENT_INTERVAL_DEFAULT;
} }
// D3D9_REPLACE EGLint SwapChain9::reset(int backbufferWidth, int backbufferHeight, EGLint swapInterval)
EGLint SwapChain::reset(int backbufferWidth, int backbufferHeight, EGLint swapInterval)
{ {
IDirect3DDevice9 *device = mRenderer->getDevice(); IDirect3DDevice9 *device = mRenderer->getDevice();
...@@ -252,7 +250,7 @@ EGLint SwapChain::reset(int backbufferWidth, int backbufferHeight, EGLint swapIn ...@@ -252,7 +250,7 @@ EGLint SwapChain::reset(int backbufferWidth, int backbufferHeight, EGLint swapIn
ERR("Could not create depthstencil surface for new swap chain: 0x%08X", result); ERR("Could not create depthstencil surface for new swap chain: 0x%08X", result);
release(); release();
if(isDeviceLostError(result)) if (isDeviceLostError(result))
{ {
return EGL_CONTEXT_LOST; return EGL_CONTEXT_LOST;
} }
...@@ -270,7 +268,7 @@ EGLint SwapChain::reset(int backbufferWidth, int backbufferHeight, EGLint swapIn ...@@ -270,7 +268,7 @@ EGLint SwapChain::reset(int backbufferWidth, int backbufferHeight, EGLint swapIn
} }
// parameters should be validated/clamped by caller // parameters should be validated/clamped by caller
EGLint SwapChain::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) EGLint SwapChain9::swapRect(EGLint x, EGLint y, EGLint width, EGLint height)
{ {
if (!mSwapChain) if (!mSwapChain)
{ {
...@@ -361,7 +359,7 @@ EGLint SwapChain::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) ...@@ -361,7 +359,7 @@ EGLint SwapChain::swapRect(EGLint x, EGLint y, EGLint width, EGLint height)
// Increments refcount on surface. // Increments refcount on surface.
// caller must Release() the returned surface // caller must Release() the returned surface
IDirect3DSurface9 *SwapChain::getRenderTarget() IDirect3DSurface9 *SwapChain9::getRenderTarget()
{ {
if (mRenderTarget) if (mRenderTarget)
{ {
...@@ -373,7 +371,7 @@ IDirect3DSurface9 *SwapChain::getRenderTarget() ...@@ -373,7 +371,7 @@ IDirect3DSurface9 *SwapChain::getRenderTarget()
// Increments refcount on surface. // Increments refcount on surface.
// caller must Release() the returned surface // caller must Release() the returned surface
IDirect3DSurface9 *SwapChain::getDepthStencil() IDirect3DSurface9 *SwapChain9::getDepthStencil()
{ {
if (mDepthStencil) if (mDepthStencil)
{ {
...@@ -385,7 +383,7 @@ IDirect3DSurface9 *SwapChain::getDepthStencil() ...@@ -385,7 +383,7 @@ IDirect3DSurface9 *SwapChain::getDepthStencil()
// Increments refcount on texture. // Increments refcount on texture.
// caller must Release() the returned texture // caller must Release() the returned texture
IDirect3DTexture9 *SwapChain::getOffscreenTexture() IDirect3DTexture9 *SwapChain9::getOffscreenTexture()
{ {
if (mOffscreenTexture) if (mOffscreenTexture)
{ {
......
//
// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// SwapChain9.h: Defines a back-end specific class for the D3D9 swap chain.
#ifndef LIBGLESV2_RENDERER_SWAPCHAIN9_H_
#define LIBGLESV2_RENDERER_SWAPCHAIN9_H_
#include <d3d9.h>
#include "common/angleutils.h"
#include "libGLESv2/renderer/SwapChain.h"
namespace rx
{
class Renderer9;
class SwapChain9 : public SwapChain
{
public:
SwapChain9(Renderer9 *renderer, HWND window, HANDLE shareHandle,
GLenum backBufferFormat, GLenum depthBufferFormat);
virtual ~SwapChain9();
virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval);
virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height);
virtual IDirect3DSurface9 *getRenderTarget();
virtual IDirect3DSurface9 *getDepthStencil();
virtual IDirect3DTexture9 *getOffscreenTexture();
private:
DISALLOW_COPY_AND_ASSIGN(SwapChain9);
void release();
Renderer9 *mRenderer;
EGLint mHeight;
EGLint mWidth;
IDirect3DSwapChain9 *mSwapChain;
IDirect3DSurface9 *mBackBuffer;
IDirect3DSurface9 *mRenderTarget;
IDirect3DSurface9 *mDepthStencil;
IDirect3DTexture9* mOffscreenTexture;
};
}
#endif // LIBGLESV2_RENDERER_SWAPCHAIN9_H_
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "libGLESv2/main.h" #include "libGLESv2/main.h"
#include "libGLESv2/renderer/TextureStorage.h" #include "libGLESv2/renderer/TextureStorage.h"
#include "libGLESv2/renderer/SwapChain.h" #include "libGLESv2/renderer/SwapChain9.h"
#include "libGLESv2/renderer/Blit.h" #include "libGLESv2/renderer/Blit.h"
#include "libGLESv2/renderer/renderer9_utils.h" #include "libGLESv2/renderer/renderer9_utils.h"
...@@ -115,7 +115,7 @@ int TextureStorage::levelCount() ...@@ -115,7 +115,7 @@ int TextureStorage::levelCount()
return getBaseTexture() ? getBaseTexture()->GetLevelCount() - getLodOffset() : 0; return getBaseTexture() ? getBaseTexture()->GetLevelCount() - getLodOffset() : 0;
} }
TextureStorage2D::TextureStorage2D(Renderer9 *renderer, rx::SwapChain *swapchain) : TextureStorage(renderer, D3DUSAGE_RENDERTARGET), mRenderTargetSerial(gl::RenderbufferStorage::issueSerial()) TextureStorage2D::TextureStorage2D(Renderer9 *renderer, rx::SwapChain9 *swapchain) : TextureStorage(renderer, D3DUSAGE_RENDERTARGET), mRenderTargetSerial(gl::RenderbufferStorage::issueSerial())
{ {
IDirect3DTexture9 *surfaceTexture = swapchain->getOffscreenTexture(); IDirect3DTexture9 *surfaceTexture = swapchain->getOffscreenTexture();
mTexture = surfaceTexture; mTexture = surfaceTexture;
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
namespace rx namespace rx
{ {
class Renderer9; class Renderer9;
class SwapChain; class SwapChain9;
class Blit; class Blit;
class TextureStorage class TextureStorage
...@@ -62,7 +62,7 @@ class TextureStorage ...@@ -62,7 +62,7 @@ class TextureStorage
class TextureStorage2D : public TextureStorage class TextureStorage2D : public TextureStorage
{ {
public: public:
explicit TextureStorage2D(rx::Renderer9 *renderer, rx::SwapChain *swapchain); explicit TextureStorage2D(rx::Renderer9 *renderer, rx::SwapChain9 *swapchain);
TextureStorage2D(rx::Renderer9 *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, GLsizei width, GLsizei height); TextureStorage2D(rx::Renderer9 *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, GLsizei width, GLsizei height);
virtual ~TextureStorage2D(); virtual ~TextureStorage2D();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment