class EE::Graphics::RendererGL

Avoid compilling the fixed pipeline renderer for GLES2, because it’s not supported.

#include <renderergl.hpp>

class RendererGL: public EE::Graphics::Renderer {
public:
    // construction

    ~RendererGL();

    // methods

    virtual GraphicsLibraryVersion version();
    virtual std::string versionStr();
    virtual void clientActiveTexture(unsigned int texture);
    virtual void pointSize(float size);
    virtual float pointSize();
    virtual void pushMatrix();
    virtual void popMatrix();
    virtual void loadIdentity();
    virtual void translatef(float x, float y, float z);
    virtual void rotatef(float angle, float x, float y, float z);
    virtual void scalef(float x, float y, float z);
    virtual void matrixMode(unsigned int mode);
    virtual void ortho(float left, float right, float bottom, float top, float zNear, float zFar);

    virtual void lookAt(
        float eyeX,
        float eyeY,
        float eyeZ,
        float centerX,
        float centerY,
        float centerZ,
        float upX,
        float upY,
        float upZ
    );

    virtual void perspective(float fovy, float aspect, float zNear, float zFar);
    virtual void enableClientState(unsigned int array);
    virtual void disableClientState(unsigned int array);
    virtual void vertexPointer(int size, unsigned int type, int stride, const void* pointer, unsigned int allocate);
    virtual void colorPointer(int size, unsigned int type, int stride, const void* pointer, unsigned int allocate);
    virtual void texCoordPointer(int size, unsigned int type, int stride, const void* pointer, unsigned int allocate);
    virtual void clipPlane(unsigned int plane, const double* equation);
    virtual void clip2DPlaneEnable(const Int32& x, const Int32& y, const Int32& Width, const Int32& Height);
    virtual void clip2DPlaneDisable();
    virtual void multMatrixf(const float* m);
    virtual void loadMatrixf(const float* m);
    virtual void frustum(float left, float right, float bottom, float top, float near_val, float far_val);
    virtual void getCurrentMatrix(unsigned int mode, float* m);
    virtual unsigned int getCurrentMatrixMode();

    virtual int project(
        float objx,
        float objy,
        float objz,
        const float modelMatrix[16],
        const float projMatrix[16],
        const int viewport[4],
        float* winx,
        float* winy,
        float* winz
    );

    virtual int unProject(
        float winx,
        float winy,
        float winz,
        const float modelMatrix[16],
        const float projMatrix[16],
        const int viewport[4],
        float* objx,
        float* objy,
        float* objz
    );
};

Inherited Members

public:
    // methods

    static GraphicsLibraryVersion glVersionFromString(std::string glVersion);
    static std::string graphicsLibraryVersionToString(const GraphicsLibraryVersion& glVersion);
    static GraphicsLibraryVersion getDefaultGraphicsLibraryVersion();
    static std::vector<GraphicsLibraryVersion> getAvailableGraphicsLibraryVersions();
    static Renderer* createSingleton(GraphicsLibraryVersion ver);
    static Renderer* createSingleton();
    static Renderer* existsSingleton();
    static Renderer* instance();
    static void destroySingleton();
    virtual void init();
    std::string getVendor();
    std::string getRenderer();
    std::string getVersion();
    std::string getShadingLanguageVersion();
    bool isExtension(const std::string& name);
    bool isExtension(GraphicsLibraryExtension name);
    bool pointSpriteSupported();
    bool shadersSupported();
    void clear(unsigned int mask);
    void clearColor(float red, float green, float blue, float alpha);
    void scissor(int x, int y, int width, int height);
    void polygonMode(unsigned int face, unsigned int mode);
    std::string getExtensions();
    const char* getString(unsigned int name);
    void drawArrays(unsigned int mode, int first, int count);
    void drawElements(unsigned int mode, int count, unsigned int type, const void* indices);
    void bindTexture(unsigned int target, unsigned int texture);
    void activeTexture(unsigned int texture);
    void blendFunc(unsigned int sfactor, unsigned int dfactor);
    void blendFuncSeparate(unsigned int sfactorRGB, unsigned int dfactorRGB, unsigned int sfactorAlpha, unsigned int dfactorAlpha);
    void blendEquationSeparate(unsigned int modeRGB, unsigned int modeAlpha);

    void blitFrameBuffer(
        int srcX0,
        int srcY0,
        int srcX1,
        int srcY1,
        int dstX0,
        int dstY0,
        int dstX1,
        int dstY1,
        unsigned int mask,
        unsigned int filter
    );

    void viewport(int x, int y, int width, int height);
    void lineSmooth(const bool& enable);
    void lineWidth(float width);
    void lineSmooth();
    bool isLineSmooth();
    void polygonSmooth(const bool& enable);
    void polygonSmooth();
    bool isPolygonSmooth();
    void polygonMode(const PrimitiveFillMode& Mode);
    void polygonMode();
    void pixelStorei(unsigned int pname, int param);
    RendererGL* getRendererGL();
    RendererGL3* getRendererGL3();
    RendererGL3CP* getRendererGL3CP();
    RendererGLES2* getRendererGLES2();
    virtual void pointSize(float size) = 0;
    virtual float pointSize() = 0;
    virtual void clientActiveTexture(unsigned int texture) = 0;
    virtual void disable(unsigned int cap);
    virtual void enable(unsigned int cap);
    virtual GraphicsLibraryVersion version() = 0;
    virtual std::string versionStr() = 0;
    virtual void pushMatrix() = 0;
    virtual void popMatrix() = 0;
    virtual void loadIdentity() = 0;
    virtual void translatef(float x, float y, float z) = 0;
    virtual void rotatef(float angle, float x, float y, float z) = 0;
    virtual void scalef(float x, float y, float z) = 0;
    virtual void matrixMode(unsigned int mode) = 0;
    virtual void ortho(float left, float right, float bottom, float top, float zNear, float zFar) = 0;

    virtual void lookAt(
        float eyeX,
        float eyeY,
        float eyeZ,
        float centerX,
        float centerY,
        float centerZ,
        float upX,
        float upY,
        float upZ
    ) = 0;

    virtual void perspective(float fovy, float aspect, float zNear, float zFar) = 0;
    virtual void enableClientState(unsigned int array) = 0;
    virtual void disableClientState(unsigned int array) = 0;
    virtual void vertexPointer(int size, unsigned int type, int stride, const void* pointer, unsigned int allocate) = 0;
    virtual void colorPointer(int size, unsigned int type, int stride, const void* pointer, unsigned int allocate) = 0;
    virtual void texCoordPointer(int size, unsigned int type, int stride, const void* pointer, unsigned int allocate) = 0;
    virtual void setShader(ShaderProgram* Shader);
    virtual void clip2DPlaneEnable(const Int32& x, const Int32& y, const Int32& Width, const Int32& Height) = 0;
    virtual void clip2DPlaneDisable() = 0;
    virtual void multMatrixf(const float* m) = 0;
    virtual void clipPlane(unsigned int plane, const double* equation) = 0;
    virtual void loadMatrixf(const float* m) = 0;
    virtual void frustum(float left, float right, float bottom, float top, float near_val, float far_val) = 0;
    virtual void getCurrentMatrix(unsigned int mode, float* m) = 0;
    virtual unsigned int getCurrentMatrixMode() = 0;
    void getViewport(int* viewport);

    virtual int project(
        float objx,
        float objy,
        float objz,
        const float modelMatrix[16],
        const float projMatrix[16],
        const int viewport[4],
        float* winx,
        float* winy,
        float* winz
    ) = 0;

    virtual int unProject(
        float winx,
        float winy,
        float winz,
        const float modelMatrix[16],
        const float projMatrix[16],
        const int viewport[4],
        float* objx,
        float* objy,
        float* objz
    ) = 0;

    Vector3f projectCurrent(const Vector3f& point);
    Vector3f unProjectCurrent(const Vector3f& point);
    void stencilFunc(unsigned int func, int ref, unsigned int mask);
    void stencilOp(unsigned int fail, unsigned int zfail, unsigned int zpass);
    void stencilMask(unsigned int mask);
    void colorMask(Uint8 red, Uint8 green, Uint8 blue, Uint8 alpha);
    void bindVertexArray(unsigned int array);
    void deleteVertexArrays(int n, const unsigned int* arrays);
    void genVertexArrays(int n, unsigned int* arrays);
    const bool& quadsSupported() const;
    const int& quadVertexs() const;
    ClippingMask* getClippingMask() const;
    void genFramebuffers(int n, unsigned int* framebuffers);
    void deleteFramebuffers(int n, const unsigned int* framebuffers);
    void bindFramebuffer(unsigned int target, unsigned int framebuffer);
    void framebufferTexture2D(unsigned int target, unsigned int attachment, unsigned int textarget, unsigned int texture, int level);
    void genRenderbuffers(int n, unsigned int* renderbuffers);
    void deleteRenderbuffers(int n, const unsigned int* renderbuffers);
    void bindRenderbuffer(unsigned int target, unsigned int renderbuffer);
    void renderbufferStorage(unsigned int target, unsigned int internalformat, int width, int height);
    void framebufferRenderbuffer(unsigned int target, unsigned int attachment, unsigned int renderbuffertarget, unsigned int renderbuffer);
    unsigned int checkFramebufferStatus(unsigned int target);
    void discardFramebuffer(unsigned int target, int numAttachments, const unsigned int* attachments);
    void* getProcAddress(std::string proc);
    void readPixels(int x, int y, unsigned int width, unsigned int height, void* pixels);
    Color readPixel(int x, int y);