Commit edcc6bc5 by Jamie Madill

Make device lost flag a RendererD3D member.

This flag we used in both D3D renderers, and hence we can move it to the base class to share a bit of common code. BUG=angle:795 Change-Id: I8bd60796bfeb9590bdf798f9d044f8e20c7ad779 Reviewed-on: https://chromium-review.googlesource.com/228912Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 4c76feac
......@@ -140,7 +140,7 @@ class Renderer
// lost device
//TODO(jmadill): investigate if this stuff is necessary in GL
virtual void notifyDeviceLost() = 0;
virtual bool isDeviceLost() = 0;
virtual bool isDeviceLost() const = 0;
virtual bool testDeviceLost() = 0;
virtual bool testDeviceResettable() = 0;
......
......@@ -8,20 +8,22 @@
#include "libANGLE/renderer/d3d/RendererD3D.h"
#include "libANGLE/renderer/d3d/IndexDataManager.h"
#include "common/utilities.h"
#include "libANGLE/Display.h"
#include "libANGLE/Framebuffer.h"
#include "libANGLE/FramebufferAttachment.h"
#include "libANGLE/ResourceManager.h"
#include "libANGLE/State.h"
#include "libANGLE/VertexArray.h"
#include "libANGLE/formatutils.h"
#include "common/utilities.h"
#include "libANGLE/renderer/d3d/IndexDataManager.h"
namespace rx
{
RendererD3D::RendererD3D(egl::Display *display)
: mDisplay(display)
: mDisplay(display),
mDeviceLost(false)
{
}
......@@ -798,4 +800,15 @@ gl::Error RendererD3D::readPixels(const gl::Data &data, GLint x, GLint y, GLsize
reinterpret_cast<uint8_t*>(pixels));
}
bool RendererD3D::isDeviceLost() const
{
return mDeviceLost;
}
void RendererD3D::notifyDeviceLost()
{
mDeviceLost = true;
mDisplay->notifyDeviceLost();
}
}
......@@ -65,6 +65,8 @@ class RendererD3D : public Renderer
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
GLbitfield mask, GLenum filter) override;
bool isDeviceLost() const override;
// Direct3D Specific methods
virtual SwapChain *createSwapChain(NativeWindow nativeWindow, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) = 0;
......@@ -149,6 +151,8 @@ class RendererD3D : public Renderer
virtual VertexBuffer *createVertexBuffer() = 0;
virtual IndexBuffer *createIndexBuffer() = 0;
void notifyDeviceLost() override;
protected:
virtual gl::Error drawArrays(GLenum mode, GLsizei count, GLsizei instances, bool transformFeedbackActive) = 0;
virtual gl::Error drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices,
......@@ -162,6 +166,7 @@ class RendererD3D : public Renderer
void cleanup();
egl::Display *mDisplay;
bool mDeviceLost;
private:
DISALLOW_COPY_AND_ASSIGN(RendererD3D);
......
......@@ -176,8 +176,6 @@ Renderer11::Renderer11(egl::Display *display, EGLNativeDisplayType hDc, const eg
mD3d11Module = NULL;
mDxgiModule = NULL;
mDeviceLost = false;
mDevice = NULL;
mDeviceContext = NULL;
mDxgiAdapter = NULL;
......@@ -1818,17 +1816,6 @@ void Renderer11::releaseDeviceResources()
SafeRelease(mSyncQuery);
}
void Renderer11::notifyDeviceLost()
{
mDeviceLost = true;
mDisplay->notifyDeviceLost();
}
bool Renderer11::isDeviceLost()
{
return mDeviceLost;
}
// set notify to true to broadcast a message to all contexts of the device loss
bool Renderer11::testDeviceLost()
{
......
......@@ -99,8 +99,6 @@ class Renderer11 : public RendererD3D
virtual void markAllStateDirty();
// lost device
void notifyDeviceLost() override;
bool isDeviceLost() override;
bool testDeviceLost() override;
bool testDeviceResettable() override;
......
......@@ -115,8 +115,6 @@ Renderer9::Renderer9(egl::Display *display, EGLNativeDisplayType hDc, const egl:
mDeviceType = D3DDEVTYPE_HAL;
#endif
mDeviceLost = false;
mMaskedClearSavedState = NULL;
mVertexDataManager = NULL;
......@@ -2151,17 +2149,6 @@ void Renderer9::releaseDeviceResources()
}
}
void Renderer9::notifyDeviceLost()
{
mDeviceLost = true;
mDisplay->notifyDeviceLost();
}
bool Renderer9::isDeviceLost()
{
return mDeviceLost;
}
// set notify to true to broadcast a message to all contexts of the device loss
bool Renderer9::testDeviceLost()
{
......
......@@ -100,8 +100,6 @@ class Renderer9 : public RendererD3D
virtual void markAllStateDirty();
// lost device
void notifyDeviceLost() override;
bool isDeviceLost() override;
bool testDeviceLost() override;
bool testDeviceResettable() override;
......
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