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 @@
<ClInclude Include="..\..\src\libGLESv2\Caps.h"/>
<ClInclude Include="..\..\src\libGLESv2\Constants.h"/>
<ClInclude Include="..\..\src\libGLESv2\Context.h"/>
<ClInclude Include="..\..\src\libGLESv2\Data.h"/>
<ClInclude Include="..\..\src\libGLESv2\Error.h"/>
<ClInclude Include="..\..\src\libGLESv2\Fence.h"/>
<ClInclude Include="..\..\src\libGLESv2\Framebuffer.h"/>
......@@ -432,6 +433,7 @@
<ClCompile Include="..\..\src\libGLESv2\Buffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Caps.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Context.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Data.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Error.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Fence.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Float16ToFloat32.cpp"/>
......
......@@ -532,6 +532,18 @@
<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">
<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">
<UniqueIdentifier>{AC4EF684-2900-10EA-3D11-A6DF0901358C}</UniqueIdentifier>
</Filter>
......@@ -3633,6 +3645,12 @@
<ClInclude Include="..\..\src\libGLESv2\Context.h">
<Filter>src\libGLESv2</Filter>
</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">
<Filter>src\libGLESv2</Filter>
</ClCompile>
......
......@@ -374,6 +374,7 @@
<ClInclude Include="..\..\..\..\src\libGLESv2\Caps.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Constants.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Context.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Data.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Error.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Fence.h"/>
<ClInclude Include="..\..\..\..\src\libGLESv2\Framebuffer.h"/>
......@@ -527,6 +528,7 @@
<ClCompile Include="..\..\..\..\src\libGLESv2\Buffer.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Caps.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Context.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Data.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Error.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Fence.cpp"/>
<ClCompile Include="..\..\..\..\src\libGLESv2\Float16ToFloat32.cpp"/>
......
......@@ -532,6 +532,18 @@
<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">
<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">
<UniqueIdentifier>{AC4EF684-2900-10EA-3D11-A6DF0901358C}</UniqueIdentifier>
</Filter>
......@@ -3108,6 +3120,12 @@
<ClInclude Include="..\..\..\..\src\libGLESv2\Context.h">
<Filter>src\libGLESv2</Filter>
</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">
<Filter>src\libGLESv2</Filter>
</ClCompile>
......
......@@ -49,6 +49,8 @@
'libGLESv2/Constants.h',
'libGLESv2/Context.cpp',
'libGLESv2/Context.h',
'libGLESv2/Data.cpp',
'libGLESv2/Data.h',
'libGLESv2/Error.cpp',
'libGLESv2/Error.h',
'libGLESv2/Fence.cpp',
......
......@@ -179,7 +179,10 @@ Context::~Context()
}
mZeroTextures.clear();
mResourceManager->release();
if (mResourceManager)
{
mResourceManager->release();
}
}
void Context::makeCurrent(egl::Surface *surface)
......@@ -2418,6 +2421,11 @@ void Context::initCaps(GLuint clientVersion)
mExtensions.maxSamples = maxSamples;
}
Data Context::getData() const
{
return Data(mClientVersion, mState, mCaps, mTextureCaps, mExtensions, mResourceManager);
}
}
extern "C"
......
......@@ -13,12 +13,12 @@
#include "common/angleutils.h"
#include "common/RefCountObject.h"
#include "libGLESv2/Caps.h"
#include "libGLESv2/Constants.h"
#include "libGLESv2/Data.h"
#include "libGLESv2/Error.h"
#include "libGLESv2/HandleAllocator.h"
#include "libGLESv2/angletypes.h"
#include "libGLESv2/Constants.h"
#include "libGLESv2/VertexAttribute.h"
#include "libGLESv2/State.h"
#include "libGLESv2/angletypes.h"
#include "angle_gl.h"
......@@ -216,6 +216,8 @@ class Context
State &getState() { return mState; }
const State &getState() const { return mState; }
Data getData() const;
void releaseShaderCompiler();
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 @@
#include "libGLESv2/Context.h"
#include "libGLESv2/Caps.h"
#include "libGLESv2/VertexArray.h"
#include "libGLESv2/Query.h"
#include "libGLESv2/Framebuffer.h"
#include "libGLESv2/FramebufferAttachment.h"
#include "libGLESv2/renderer/RenderTarget.h"
#include "libGLESv2/Query.h"
#include "libGLESv2/VertexArray.h"
#include "libGLESv2/formatutils.h"
#include "libGLESv2/renderer/RenderTarget.h"
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