CustomFilterMesh.h [plain text]
#ifndef CustomFilterMesh_h
#define CustomFilterMesh_h
#if ENABLE(CSS_SHADERS) && ENABLE(WEBGL)
#include "CustomFilterOperation.h"
#include "FloatRect.h"
#include "GraphicsTypes3D.h"
#include <wtf/RefCounted.h>
namespace WebCore {
class GraphicsContext3D;
class CustomFilterMesh : public RefCounted<CustomFilterMesh> {
public:
static PassRefPtr<CustomFilterMesh> create(GraphicsContext3D* context, unsigned cols, unsigned rows, const FloatRect& meshBox, CustomFilterOperation::MeshType meshType)
{
return adoptRef(new CustomFilterMesh(context, cols, rows, meshBox, meshType));
}
~CustomFilterMesh();
Platform3DObject verticesBufferObject() const { return m_verticesBufferObject; }
unsigned bytesPerVertex() const { return m_bytesPerVertex; }
Platform3DObject elementsBufferObject() const { return m_elementsBufferObject; }
unsigned indicesCount() const { return m_indicesCount; }
const FloatRect& meshBox() const { return m_meshBox; }
CustomFilterOperation::MeshType meshType() const { return m_meshType; }
private:
CustomFilterMesh(GraphicsContext3D*, unsigned cols, unsigned rows, const FloatRect& meshBox, CustomFilterOperation::MeshType);
GraphicsContext3D* m_context;
Platform3DObject m_verticesBufferObject;
unsigned m_bytesPerVertex;
Platform3DObject m_elementsBufferObject;
unsigned m_indicesCount;
FloatRect m_meshBox;
CustomFilterOperation::MeshType m_meshType;
};
}
#endif // ENABLE(CSS_SHADERS) && ENABLE(WEBGL)
#endif // CustomFilterMesh_h