summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libANGLE/renderer/d3d/VertexBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/renderer/d3d/VertexBuffer.h')
-rw-r--r--src/3rdparty/angle/src/libANGLE/renderer/d3d/VertexBuffer.h175
1 files changed, 0 insertions, 175 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/VertexBuffer.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/VertexBuffer.h
deleted file mode 100644
index df8085d3cb..0000000000
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/VertexBuffer.h
+++ /dev/null
@@ -1,175 +0,0 @@
-//
-// Copyright (c) 2002-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.
-//
-
-// VertexBuffer.h: Defines the abstract VertexBuffer class and VertexBufferInterface
-// class with derivations, classes that perform graphics API agnostic vertex buffer operations.
-
-#ifndef LIBANGLE_RENDERER_D3D_VERTEXBUFFER_H_
-#define LIBANGLE_RENDERER_D3D_VERTEXBUFFER_H_
-
-#include "common/angleutils.h"
-#include "libANGLE/Error.h"
-
-#include <GLES2/gl2.h>
-
-#include <cstddef>
-#include <cstdint>
-#include <vector>
-
-namespace gl
-{
-struct VertexAttribute;
-class VertexBinding;
-struct VertexAttribCurrentValueData;
-}
-
-namespace rx
-{
-class BufferFactoryD3D;
-
-// Use a ref-counting scheme with self-deletion on release. We do this so that we can more
-// easily manage the static buffer cache, without deleting currently bound buffers.
-class VertexBuffer : angle::NonCopyable
-{
- public:
- VertexBuffer();
-
- virtual gl::Error initialize(unsigned int size, bool dynamicUsage) = 0;
-
- // Warning: you should ensure binding really matches attrib.bindingIndex before using this
- // function.
- virtual gl::Error storeVertexAttributes(const gl::VertexAttribute &attrib,
- const gl::VertexBinding &binding,
- GLenum currentValueType,
- GLint start,
- GLsizei count,
- GLsizei instances,
- unsigned int offset,
- const uint8_t *sourceData) = 0;
-
- virtual unsigned int getBufferSize() const = 0;
- virtual gl::Error setBufferSize(unsigned int size) = 0;
- virtual gl::Error discard() = 0;
-
- unsigned int getSerial() const;
-
- // This may be overridden (e.g. by VertexBuffer11) if necessary.
- virtual void hintUnmapResource() { };
-
- // Reference counting.
- void addRef();
- void release();
-
- protected:
- void updateSerial();
- virtual ~VertexBuffer();
-
- private:
- unsigned int mSerial;
- static unsigned int mNextSerial;
- unsigned int mRefCount;
-};
-
-class VertexBufferInterface : angle::NonCopyable
-{
- public:
- VertexBufferInterface(BufferFactoryD3D *factory, bool dynamic);
- virtual ~VertexBufferInterface();
-
- unsigned int getBufferSize() const;
- bool empty() const { return getBufferSize() == 0; }
-
- unsigned int getSerial() const;
-
- VertexBuffer *getVertexBuffer() const;
-
- protected:
- gl::Error discard();
-
- gl::Error setBufferSize(unsigned int size);
-
- gl::ErrorOrResult<unsigned int> getSpaceRequired(const gl::VertexAttribute &attrib,
- const gl::VertexBinding &binding,
- GLsizei count,
- GLsizei instances) const;
- BufferFactoryD3D *const mFactory;
- VertexBuffer *mVertexBuffer;
- bool mDynamic;
-};
-
-class StreamingVertexBufferInterface : public VertexBufferInterface
-{
- public:
- StreamingVertexBufferInterface(BufferFactoryD3D *factory, std::size_t initialSize);
- ~StreamingVertexBufferInterface() override;
-
- gl::Error storeDynamicAttribute(const gl::VertexAttribute &attrib,
- const gl::VertexBinding &binding,
- GLenum currentValueType,
- GLint start,
- GLsizei count,
- GLsizei instances,
- unsigned int *outStreamOffset,
- const uint8_t *sourceData);
-
- gl::Error reserveVertexSpace(const gl::VertexAttribute &attribute,
- const gl::VertexBinding &binding,
- GLsizei count,
- GLsizei instances);
-
- private:
- gl::Error reserveSpace(unsigned int size);
-
- unsigned int mWritePosition;
- unsigned int mReservedSpace;
-};
-
-class StaticVertexBufferInterface : public VertexBufferInterface
-{
- public:
- explicit StaticVertexBufferInterface(BufferFactoryD3D *factory);
- ~StaticVertexBufferInterface() override;
-
- // Warning: you should ensure binding really matches attrib.bindingIndex before using these
- // functions.
- gl::Error storeStaticAttribute(const gl::VertexAttribute &attrib,
- const gl::VertexBinding &binding,
- GLint start,
- GLsizei count,
- GLsizei instances,
- const uint8_t *sourceData);
-
- bool matchesAttribute(const gl::VertexAttribute &attribute,
- const gl::VertexBinding &binding) const;
-
- void setAttribute(const gl::VertexAttribute &attribute, const gl::VertexBinding &binding);
-
- private:
- class AttributeSignature final : angle::NonCopyable
- {
- public:
- AttributeSignature();
-
- bool matchesAttribute(const gl::VertexAttribute &attrib,
- const gl::VertexBinding &binding) const;
-
- void set(const gl::VertexAttribute &attrib, const gl::VertexBinding &binding);
-
- private:
- GLenum type;
- GLuint size;
- GLuint stride;
- bool normalized;
- bool pureInteger;
- size_t offset;
- };
-
- AttributeSignature mSignature;
-};
-
-} // namespace rx
-
-#endif // LIBANGLE_RENDERER_D3D_VERTEXBUFFER_H_