Commit 1e9ae079 by Jamie Madill

Add a base for GL essential data.

The data holds the GL state, caps, extensions, texture caps, and current client version. BUG=angle:789 Change-Id: Icd15d806e14490f39041dea663ab2461a6a76090 Reviewed-on: https://chromium-review.googlesource.com/226060Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarBrandon Jones <bajones@chromium.org>
parent dedd7b95
...@@ -261,6 +261,7 @@ ...@@ -261,6 +261,7 @@
<ClInclude Include="..\..\src\libGLESv2\Caps.h"/> <ClInclude Include="..\..\src\libGLESv2\Caps.h"/>
<ClInclude Include="..\..\src\libGLESv2\Constants.h"/> <ClInclude Include="..\..\src\libGLESv2\Constants.h"/>
<ClInclude Include="..\..\src\libGLESv2\Context.h"/> <ClInclude Include="..\..\src\libGLESv2\Context.h"/>
<ClInclude Include="..\..\src\libGLESv2\Data.h"/>
<ClInclude Include="..\..\src\libGLESv2\Error.h"/> <ClInclude Include="..\..\src\libGLESv2\Error.h"/>
<ClInclude Include="..\..\src\libGLESv2\Fence.h"/> <ClInclude Include="..\..\src\libGLESv2\Fence.h"/>
<ClInclude Include="..\..\src\libGLESv2\Framebuffer.h"/> <ClInclude Include="..\..\src\libGLESv2\Framebuffer.h"/>
...@@ -432,6 +433,7 @@ ...@@ -432,6 +433,7 @@
<ClCompile Include="..\..\src\libGLESv2\Buffer.cpp"/> <ClCompile Include="..\..\src\libGLESv2\Buffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Caps.cpp"/> <ClCompile Include="..\..\src\libGLESv2\Caps.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Context.cpp"/> <ClCompile Include="..\..\src\libGLESv2\Context.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Data.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Error.cpp"/> <ClCompile Include="..\..\src\libGLESv2\Error.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Fence.cpp"/> <ClCompile Include="..\..\src\libGLESv2\Fence.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Float16ToFloat32.cpp"/> <ClCompile Include="..\..\src\libGLESv2\Float16ToFloat32.cpp"/>
......
...@@ -532,6 +532,18 @@ ...@@ -532,6 +532,18 @@
<Filter Include="src\libGLESv2"> <Filter Include="src\libGLESv2">
<UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier> <UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="src">
<UniqueIdentifier>{8CDEE807-BC53-E450-C8B8-4DEBB66742D4}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2">
<UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{8CDEE807-BC53-E450-C8B8-4DEBB66742D4}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2">
<UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2\renderer"> <Filter Include="src\libGLESv2\renderer">
<UniqueIdentifier>{AC4EF684-2900-10EA-3D11-A6DF0901358C}</UniqueIdentifier> <UniqueIdentifier>{AC4EF684-2900-10EA-3D11-A6DF0901358C}</UniqueIdentifier>
</Filter> </Filter>
...@@ -3633,6 +3645,12 @@ ...@@ -3633,6 +3645,12 @@
<ClInclude Include="..\..\src\libGLESv2\Context.h"> <ClInclude Include="..\..\src\libGLESv2\Context.h">
<Filter>src\libGLESv2</Filter> <Filter>src\libGLESv2</Filter>
</ClInclude> </ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Data.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\Data.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Error.cpp"> <ClCompile Include="..\..\src\libGLESv2\Error.cpp">
<Filter>src\libGLESv2</Filter> <Filter>src\libGLESv2</Filter>
</ClCompile> </ClCompile>
......
...@@ -374,6 +374,7 @@ ...@@ -374,6 +374,7 @@
<ClInclude Include="..\..\..\..\src\libGLESv2\Caps.h"/> <ClInclude Include="..\..\..\..\src\libGLESv2\Caps.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Constants.h"/> <ClInclude Include="..\..\..\..\src\libGLESv2\Constants.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Context.h"/> <ClInclude Include="..\..\..\..\src\libGLESv2\Context.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Data.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Error.h"/> <ClInclude Include="..\..\..\..\src\libGLESv2\Error.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Fence.h"/> <ClInclude Include="..\..\..\..\src\libGLESv2\Fence.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Framebuffer.h"/> <ClInclude Include="..\..\..\..\src\libGLESv2\Framebuffer.h"/>
...@@ -527,6 +528,7 @@ ...@@ -527,6 +528,7 @@
<ClCompile Include="..\..\..\..\src\libGLESv2\Buffer.cpp"/> <ClCompile Include="..\..\..\..\src\libGLESv2\Buffer.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Caps.cpp"/> <ClCompile Include="..\..\..\..\src\libGLESv2\Caps.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Context.cpp"/> <ClCompile Include="..\..\..\..\src\libGLESv2\Context.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Data.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Error.cpp"/> <ClCompile Include="..\..\..\..\src\libGLESv2\Error.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Fence.cpp"/> <ClCompile Include="..\..\..\..\src\libGLESv2\Fence.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Float16ToFloat32.cpp"/> <ClCompile Include="..\..\..\..\src\libGLESv2\Float16ToFloat32.cpp"/>
......
...@@ -532,6 +532,18 @@ ...@@ -532,6 +532,18 @@
<Filter Include="src\libGLESv2"> <Filter Include="src\libGLESv2">
<UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier> <UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="src">
<UniqueIdentifier>{8CDEE807-BC53-E450-C8B8-4DEBB66742D4}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2">
<UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{8CDEE807-BC53-E450-C8B8-4DEBB66742D4}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2">
<UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2\renderer"> <Filter Include="src\libGLESv2\renderer">
<UniqueIdentifier>{AC4EF684-2900-10EA-3D11-A6DF0901358C}</UniqueIdentifier> <UniqueIdentifier>{AC4EF684-2900-10EA-3D11-A6DF0901358C}</UniqueIdentifier>
</Filter> </Filter>
...@@ -3108,6 +3120,12 @@ ...@@ -3108,6 +3120,12 @@
<ClInclude Include="..\..\..\..\src\libGLESv2\Context.h"> <ClInclude Include="..\..\..\..\src\libGLESv2\Context.h">
<Filter>src\libGLESv2</Filter> <Filter>src\libGLESv2</Filter>
</ClInclude> </ClInclude>
<ClCompile Include="..\..\..\..\src\libGLESv2\Data.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\..\..\src\libGLESv2\Data.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\..\..\src\libGLESv2\Error.cpp"> <ClCompile Include="..\..\..\..\src\libGLESv2\Error.cpp">
<Filter>src\libGLESv2</Filter> <Filter>src\libGLESv2</Filter>
</ClCompile> </ClCompile>
......
...@@ -49,6 +49,8 @@ ...@@ -49,6 +49,8 @@
'libGLESv2/Constants.h', 'libGLESv2/Constants.h',
'libGLESv2/Context.cpp', 'libGLESv2/Context.cpp',
'libGLESv2/Context.h', 'libGLESv2/Context.h',
'libGLESv2/Data.cpp',
'libGLESv2/Data.h',
'libGLESv2/Error.cpp', 'libGLESv2/Error.cpp',
'libGLESv2/Error.h', 'libGLESv2/Error.h',
'libGLESv2/Fence.cpp', 'libGLESv2/Fence.cpp',
......
...@@ -179,7 +179,10 @@ Context::~Context() ...@@ -179,7 +179,10 @@ Context::~Context()
} }
mZeroTextures.clear(); mZeroTextures.clear();
mResourceManager->release(); if (mResourceManager)
{
mResourceManager->release();
}
} }
void Context::makeCurrent(egl::Surface *surface) void Context::makeCurrent(egl::Surface *surface)
...@@ -2418,6 +2421,11 @@ void Context::initCaps(GLuint clientVersion) ...@@ -2418,6 +2421,11 @@ void Context::initCaps(GLuint clientVersion)
mExtensions.maxSamples = maxSamples; mExtensions.maxSamples = maxSamples;
} }
Data Context::getData() const
{
return Data(mClientVersion, mState, mCaps, mTextureCaps, mExtensions, mResourceManager);
}
} }
extern "C" extern "C"
......
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
#include "common/angleutils.h" #include "common/angleutils.h"
#include "common/RefCountObject.h" #include "common/RefCountObject.h"
#include "libGLESv2/Caps.h" #include "libGLESv2/Caps.h"
#include "libGLESv2/Constants.h"
#include "libGLESv2/Data.h"
#include "libGLESv2/Error.h" #include "libGLESv2/Error.h"
#include "libGLESv2/HandleAllocator.h" #include "libGLESv2/HandleAllocator.h"
#include "libGLESv2/angletypes.h"
#include "libGLESv2/Constants.h"
#include "libGLESv2/VertexAttribute.h" #include "libGLESv2/VertexAttribute.h"
#include "libGLESv2/State.h" #include "libGLESv2/angletypes.h"
#include "angle_gl.h" #include "angle_gl.h"
...@@ -216,6 +216,8 @@ class Context ...@@ -216,6 +216,8 @@ class Context
State &getState() { return mState; } State &getState() { return mState; }
const State &getState() const { return mState; } const State &getState() const { return mState; }
Data getData() const;
void releaseShaderCompiler(); void releaseShaderCompiler();
private: private:
......
//
// Copyright (c) 2014 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.
//
// Data.cpp: Container class for all GL relevant state, caps and objects
#include "libGLESv2/Data.h"
#include "libGLESv2/ResourceManager.h"
namespace gl
{
Data::Data(GLint clientVersionIn, const State &stateIn, const Caps &capsIn,
const TextureCapsMap &textureCapsIn, const Extensions &extensionsIn,
const ResourceManager *resourceManagerIn)
: clientVersion(clientVersionIn),
state(&stateIn),
caps(&capsIn),
textureCaps(&textureCapsIn),
extensions(&extensionsIn),
resourceManager(resourceManagerIn)
{}
Data::~Data()
{
}
Data::Data(const Data &other)
: clientVersion(other.clientVersion),
state(other.state),
caps(other.caps),
textureCaps(other.textureCaps),
extensions(other.extensions),
resourceManager(other.resourceManager)
{
}
Data &Data::operator=(const Data &other)
{
clientVersion = other.clientVersion;
state = other.state;
caps = other.caps;
textureCaps = other.textureCaps;
extensions = other.extensions;
resourceManager = other.resourceManager;
return *this;
}
}
//
// Copyright (c) 2014 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.
//
// Data.h: Container class for all GL relevant state, caps and objects
#ifndef LIBGLESV2_DATA_H_
#define LIBGLESV2_DATA_H_
#include "libGLESv2/State.h"
namespace gl
{
struct Data final
{
public:
Data(GLint clientVersion, const State &state, const Caps &caps,
const TextureCapsMap &textureCaps, const Extensions &extensions,
const ResourceManager *resourceManager);
~Data();
Data(const Data &other);
Data &operator=(const Data &other);
GLint clientVersion;
const State *state;
const Caps *caps;
const TextureCapsMap *textureCaps;
const Extensions *extensions;
const ResourceManager *resourceManager;
};
}
#endif // LIBGLESV2_DATA_H_
...@@ -10,12 +10,12 @@ ...@@ -10,12 +10,12 @@
#include "libGLESv2/Context.h" #include "libGLESv2/Context.h"
#include "libGLESv2/Caps.h" #include "libGLESv2/Caps.h"
#include "libGLESv2/VertexArray.h"
#include "libGLESv2/Query.h"
#include "libGLESv2/Framebuffer.h" #include "libGLESv2/Framebuffer.h"
#include "libGLESv2/FramebufferAttachment.h" #include "libGLESv2/FramebufferAttachment.h"
#include "libGLESv2/renderer/RenderTarget.h" #include "libGLESv2/Query.h"
#include "libGLESv2/VertexArray.h"
#include "libGLESv2/formatutils.h" #include "libGLESv2/formatutils.h"
#include "libGLESv2/renderer/RenderTarget.h"
namespace gl namespace gl
{ {
......
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