Extensions3DOpenGLCommon.h [plain text]
#ifndef Extensions3DOpenGLCommon_h
#define Extensions3DOpenGLCommon_h
#include "Extensions3D.h"
#include "GraphicsContext3D.h"
#include <wtf/HashSet.h>
#include <wtf/text/StringHash.h>
namespace WebCore {
class Extensions3DOpenGLCommon : public Extensions3D {
public:
virtual ~Extensions3DOpenGLCommon();
virtual bool supports(const String&);
virtual void ensureEnabled(const String&);
virtual bool isEnabled(const String&);
virtual int getGraphicsResetStatusARB();
virtual Platform3DObject createVertexArrayOES() = 0;
virtual void deleteVertexArrayOES(Platform3DObject) = 0;
virtual GC3Dboolean isVertexArrayOES(Platform3DObject) = 0;
virtual void bindVertexArrayOES(Platform3DObject) = 0;
virtual void drawBuffersEXT(GC3Dsizei, const GC3Denum*) = 0;
virtual String getTranslatedShaderSourceANGLE(Platform3DObject);
virtual void readnPixelsEXT(int x, int y, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, GC3Dsizei bufSize, void *data);
virtual void getnUniformfvEXT(GC3Duint program, int location, GC3Dsizei bufSize, float *params);
virtual void getnUniformivEXT(GC3Duint program, int location, GC3Dsizei bufSize, int *params);
virtual bool isNVIDIA() { return m_isNVIDIA; }
virtual bool isAMD() { return m_isAMD; }
virtual bool isIntel() { return m_isIntel; }
virtual bool isImagination() { return m_isImagination; }
virtual String vendor() { return m_vendor; }
virtual bool requiresBuiltInFunctionEmulation() { return m_requiresBuiltInFunctionEmulation; }
virtual bool requiresRestrictedMaximumTextureSize() { return m_requiresRestrictedMaximumTextureSize; }
protected:
friend class Extensions3DOpenGLES;
Extensions3DOpenGLCommon(GraphicsContext3D*);
virtual bool supportsExtension(const String&) = 0;
virtual String getExtensions() = 0;
virtual void initializeAvailableExtensions();
bool m_initializedAvailableExtensions;
HashSet<String> m_availableExtensions;
GraphicsContext3D* m_context;
bool m_isNVIDIA;
bool m_isAMD;
bool m_isIntel;
bool m_isImagination;
bool m_requiresBuiltInFunctionEmulation;
bool m_requiresRestrictedMaximumTextureSize;
String m_vendor;
String m_renderer;
};
}
#endif // Extensions3DOpenGLCommon_h