Commit 87939710 by Jamie Madill Committed by Shannon Woods

Move VertexAttribute to its own header file.

This is in preparation for VAO support. TRAC #23390 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang Authored-by: Jamie Madill
parent 5ab33c89
...@@ -377,6 +377,7 @@ ...@@ -377,6 +377,7 @@
'libGLESv2/Texture.h', 'libGLESv2/Texture.h',
'libGLESv2/Uniform.cpp', 'libGLESv2/Uniform.cpp',
'libGLESv2/Uniform.h', 'libGLESv2/Uniform.h',
'libGLESv2/VertexAttribute.h',
], ],
# TODO(jschuh): http://crbug.com/167187 size_t -> int # TODO(jschuh): http://crbug.com/167187 size_t -> int
'msvs_disabled_warnings': [ 4267 ], 'msvs_disabled_warnings': [ 4267 ],
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "libGLESv2/HandleAllocator.h" #include "libGLESv2/HandleAllocator.h"
#include "libGLESv2/angletypes.h" #include "libGLESv2/angletypes.h"
#include "libGLESv2/Constants.h" #include "libGLESv2/Constants.h"
#include "libGLESv2/VertexAttribute.h"
namespace rx namespace rx
{ {
...@@ -75,76 +76,6 @@ enum QueryType ...@@ -75,76 +76,6 @@ enum QueryType
QUERY_TYPE_COUNT QUERY_TYPE_COUNT
}; };
// Helper structure describing a single vertex attribute
class VertexAttribute
{
public:
VertexAttribute() : mType(GL_FLOAT), mSize(0), mNormalized(false), mPureInteger(false),
mStride(0), mPointer(NULL), mArrayEnabled(false), mDivisor(0)
{
mCurrentValue.FloatValues[0] = 0.0f;
mCurrentValue.FloatValues[1] = 0.0f;
mCurrentValue.FloatValues[2] = 0.0f;
mCurrentValue.FloatValues[3] = 1.0f;
mCurrentValue.Type = GL_FLOAT;
}
int typeSize() const
{
switch (mType)
{
case GL_BYTE: return mSize * sizeof(GLbyte);
case GL_UNSIGNED_BYTE: return mSize * sizeof(GLubyte);
case GL_SHORT: return mSize * sizeof(GLshort);
case GL_UNSIGNED_SHORT: return mSize * sizeof(GLushort);
case GL_INT: return mSize * sizeof(GLint);
case GL_UNSIGNED_INT: return mSize * sizeof(GLuint);
case GL_INT_2_10_10_10_REV: return 4;
case GL_UNSIGNED_INT_2_10_10_10_REV: return 4;
case GL_FIXED: return mSize * sizeof(GLfixed);
case GL_HALF_FLOAT: return mSize * sizeof(GLhalf);
case GL_FLOAT: return mSize * sizeof(GLfloat);
default: UNREACHABLE(); return mSize * sizeof(GLfloat);
}
}
GLsizei stride() const
{
return mStride ? mStride : typeSize();
}
// From glVertexAttribPointer
GLenum mType;
GLint mSize;
bool mNormalized;
bool mPureInteger;
GLsizei mStride; // 0 means natural stride
union
{
const void *mPointer;
intptr_t mOffset;
};
BindingPointer<Buffer> mBoundBuffer; // Captured when glVertexAttribPointer is called.
bool mArrayEnabled; // From glEnable/DisableVertexAttribArray
struct CurrentValueData
{
union
{
GLfloat FloatValues[4];
GLint IntValues[4];
GLuint UnsignedIntValues[4];
};
GLenum Type;
};
CurrentValueData mCurrentValue; // From glVertexAttrib
unsigned int mDivisor;
};
// Helper structure to store all raw state // Helper structure to store all raw state
struct State struct State
{ {
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "libGLESv2/Program.h" #include "libGLESv2/Program.h"
#include "libGLESv2/renderer/Renderer.h" #include "libGLESv2/renderer/Renderer.h"
#include "libGLESv2/renderer/VertexDataManager.h" #include "libGLESv2/renderer/VertexDataManager.h"
#include "libGLESv2/Context.h"
#include "libGLESv2/Buffer.h" #include "libGLESv2/Buffer.h"
#undef near #undef near
......
//
// Copyright (c) 2013 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.
//
// Helper structure describing a single vertex attribute
//
#ifndef LIBGLESV2_VERTEXATTRIBUTE_H_
#define LIBGLESV2_VERTEXATTRIBUTE_H_
#include "common/RefCountObject.h"
namespace gl
{
class Buffer;
class VertexAttribute
{
public:
VertexAttribute() : mType(GL_FLOAT), mSize(0), mNormalized(false), mPureInteger(false),
mStride(0), mPointer(NULL), mArrayEnabled(false), mDivisor(0)
{
mCurrentValue.FloatValues[0] = 0.0f;
mCurrentValue.FloatValues[1] = 0.0f;
mCurrentValue.FloatValues[2] = 0.0f;
mCurrentValue.FloatValues[3] = 1.0f;
mCurrentValue.Type = GL_FLOAT;
}
int typeSize() const
{
switch (mType)
{
case GL_BYTE: return mSize * sizeof(GLbyte);
case GL_UNSIGNED_BYTE: return mSize * sizeof(GLubyte);
case GL_SHORT: return mSize * sizeof(GLshort);
case GL_UNSIGNED_SHORT: return mSize * sizeof(GLushort);
case GL_INT: return mSize * sizeof(GLint);
case GL_UNSIGNED_INT: return mSize * sizeof(GLuint);
case GL_INT_2_10_10_10_REV: return 4;
case GL_UNSIGNED_INT_2_10_10_10_REV: return 4;
case GL_FIXED: return mSize * sizeof(GLfixed);
case GL_HALF_FLOAT: return mSize * sizeof(GLhalf);
case GL_FLOAT: return mSize * sizeof(GLfloat);
default: UNREACHABLE(); return mSize * sizeof(GLfloat);
}
}
GLsizei stride() const
{
return mStride ? mStride : typeSize();
}
// From glVertexAttribPointer
GLenum mType;
GLint mSize;
bool mNormalized;
bool mPureInteger;
GLsizei mStride; // 0 means natural stride
union
{
const void *mPointer;
intptr_t mOffset;
};
BindingPointer<Buffer> mBoundBuffer; // Captured when glVertexAttribPointer is called.
bool mArrayEnabled; // From glEnable/DisableVertexAttribArray
struct CurrentValueData
{
union
{
GLfloat FloatValues[4];
GLint IntValues[4];
GLuint UnsignedIntValues[4];
};
GLenum Type;
};
CurrentValueData mCurrentValue; // From glVertexAttrib
unsigned int mDivisor;
};
}
#endif // LIBGLESV2_VERTEXATTRIBUTE_H_
...@@ -438,6 +438,7 @@ copy "$(OutDir)libGLESv2.lib" "$(ProjectDir)..\..\lib\$(Configuration)\" ...@@ -438,6 +438,7 @@ copy "$(OutDir)libGLESv2.lib" "$(ProjectDir)..\..\lib\$(Configuration)\"
<ClInclude Include="Texture.h" /> <ClInclude Include="Texture.h" />
<ClInclude Include="Uniform.h" /> <ClInclude Include="Uniform.h" />
<ClInclude Include="..\common\version.h" /> <ClInclude Include="..\common\version.h" />
<ClInclude Include="VertexAttribute.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="libGLESv2.def" /> <None Include="libGLESv2.def" />
......
...@@ -616,6 +616,9 @@ ...@@ -616,6 +616,9 @@
<ClInclude Include="renderer\shaders\compiled\passthroughdepth2d11ps.h"> <ClInclude Include="renderer\shaders\compiled\passthroughdepth2d11ps.h">
<Filter>Shaders\Compiled</Filter> <Filter>Shaders\Compiled</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="VertexAttribute.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="renderer\shaders\Blit.ps"> <None Include="renderer\shaders\Blit.ps">
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "libGLESv2/renderer/BufferStorage11.h" #include "libGLESv2/renderer/BufferStorage11.h"
#include "libGLESv2/renderer/ShaderExecutable11.h" #include "libGLESv2/renderer/ShaderExecutable11.h"
#include "libGLESv2/ProgramBinary.h" #include "libGLESv2/ProgramBinary.h"
#include "libGLESv2/Context.h" #include "libGLESv2/VertexAttribute.h"
#include "libGLESv2/renderer/VertexDataManager.h" #include "libGLESv2/renderer/VertexDataManager.h"
#include "third_party/murmurhash/MurmurHash3.h" #include "third_party/murmurhash/MurmurHash3.h"
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "libGLESv2/renderer/VertexBuffer.h" #include "libGLESv2/renderer/VertexBuffer.h"
#include "libGLESv2/renderer/Renderer.h" #include "libGLESv2/renderer/Renderer.h"
#include "libGLESv2/Context.h" #include "libGLESv2/VertexAttribute.h"
namespace rx namespace rx
{ {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include "libGLESv2/Buffer.h" #include "libGLESv2/Buffer.h"
#include "libGLESv2/renderer/Renderer11.h" #include "libGLESv2/renderer/Renderer11.h"
#include "libGLESv2/Context.h" #include "libGLESv2/VertexAttribute.h"
namespace rx namespace rx
{ {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "libGLESv2/renderer/VertexBuffer9.h" #include "libGLESv2/renderer/VertexBuffer9.h"
#include "libGLESv2/renderer/vertexconversion.h" #include "libGLESv2/renderer/vertexconversion.h"
#include "libGLESv2/renderer/BufferStorage.h" #include "libGLESv2/renderer/BufferStorage.h"
#include "libGLESv2/Context.h" #include "libGLESv2/VertexAttribute.h"
#include "libGLESv2/renderer/Renderer9.h" #include "libGLESv2/renderer/Renderer9.h"
#include "libGLESv2/Buffer.h" #include "libGLESv2/Buffer.h"
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "libGLESv2/Buffer.h" #include "libGLESv2/Buffer.h"
#include "libGLESv2/ProgramBinary.h" #include "libGLESv2/ProgramBinary.h"
#include "libGLESv2/Context.h" #include "libGLESv2/VertexAttribute.h"
#include "libGLESv2/renderer/VertexBuffer.h" #include "libGLESv2/renderer/VertexBuffer.h"
namespace namespace
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#define LIBGLESV2_RENDERER_VERTEXDATAMANAGER_H_ #define LIBGLESV2_RENDERER_VERTEXDATAMANAGER_H_
#include "libGLESv2/Constants.h" #include "libGLESv2/Constants.h"
#include "libGLESv2/Context.h" #include "libGLESv2/VertexAttribute.h"
#include "common/angleutils.h" #include "common/angleutils.h"
namespace gl namespace gl
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
// VertexDeclarationCache.cpp: Implements a helper class to construct and cache vertex declarations. // VertexDeclarationCache.cpp: Implements a helper class to construct and cache vertex declarations.
#include "libGLESv2/ProgramBinary.h" #include "libGLESv2/ProgramBinary.h"
#include "libGLESv2/Context.h" #include "libGLESv2/VertexAttribute.h"
#include "libGLESv2/renderer/VertexBuffer9.h" #include "libGLESv2/renderer/VertexBuffer9.h"
#include "libGLESv2/renderer/VertexDeclarationCache.h" #include "libGLESv2/renderer/VertexDeclarationCache.h"
......
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