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