Esempio n. 1
0
    static void InitGL() {
        OGLEXT(PFNGLCLIENTACTIVETEXTUREPROC, glClientActiveTexture);
        OGLEXT(PFNGLACTIVETEXTUREPROC, glActiveTexture);

        OGLEXT(PFNGLDELETEBUFFERSARBPROC, glDeleteBuffers);
        OGLEXT(PFNGLGENBUFFERSPROC, glGenBuffers);
        OGLEXT(PFNGLBINDBUFFERPROC, glBindBuffer);
        OGLEXT(PFNGLBUFFERDATAPROC, glBufferData);

        OGLEXT(PFNGLATTACHSHADERPROC, glAttachShader);
        OGLEXT(PFNGLCOMPILESHADERPROC, glCompileShader);
        OGLEXT(PFNGLCREATEPROGRAMPROC, glCreateProgram);
        OGLEXT(PFNGLCREATESHADERPROC, glCreateShader);
        OGLEXT(PFNGLDELETEPROGRAMPROC, glDeleteProgram);
        OGLEXT(PFNGLDELETESHADERPROC, glDeleteShader);
        OGLEXT(PFNGLLINKPROGRAMPROC, glLinkProgram);
        OGLEXT(PFNGLSHADERSOURCEPROC, glShaderSource);
        OGLEXT(PFNGLUSEPROGRAMPROC, glUseProgram);
        OGLEXT(PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation);
        OGLEXT(PFNGLVERTEXATTRIB4FVARBPROC, glVertexAttrib4fvARB);
        OGLEXT(PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation);
        OGLEXT(PFNGLUNIFORMMATRIX4FVARBPROC, glUniformMatrix4fvARB);
        OGLEXT(PFNGLUNIFORM3FPROC, glUniform3f);
        OGLEXT(PFNGLUNIFORM1IPROC, glUniform1i);

        OGLEXT(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer);
        OGLEXT(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray);
        OGLEXT(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray);

        OGLEXT(PFNGLGENPROGRAMSARBPROC, glGenProgramsARB);
        OGLEXT(PFNGLPROGRAMSTRINGARBPROC, glProgramStringARB);
        OGLEXT(PFNGLBINDPROGRAMARBPROC, glBindProgramARB);
        OGLEXT(PFNGLDELETEPROGRAMSARBPROC, glDeleteProgramARB);
        OGLEXT(PFNGLPROGRAMENVPARAMETER4FARBPROC, glProgramEnvParameter4fARB);
        OGLEXT(PFNGLPROGRAMLOCALPARAMETER4FARBPROC, glProgramLocalParameter4fARB);

        OGLEXT(PFNGLBINDFRAMEBUFFEREXTPROC, glBindFramebufferEXT);
        OGLEXT(PFNGLDELETEFRAMEBUFFERSEXTPROC, glDeleteFramebuffersEXT);
        OGLEXT(PFNGLGENFRAMEBUFFERSEXTPROC, glGenFramebuffersEXT);
        OGLEXT(PFNGLBINDRENDERBUFFEREXTPROC, glBindRenderbufferEXT);
        OGLEXT(PFNGLDELETERENDERBUFFERSEXTPROC, glDeleteRenderbuffersEXT);
        OGLEXT(PFNGLGENRENDERBUFFERSEXTPROC, glGenRenderbuffersEXT);
        OGLEXT(PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC, glFramebufferRenderbufferEXT);
        OGLEXT(PFNGLRENDERBUFFERSTORAGEEXTPROC, glRenderbufferStorageEXT);
        OGLEXT(PFNGLFRAMEBUFFERTEXTURE2DEXTPROC, glFramebufferTexture2DEXT);
        OGLEXT(PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, glCheckFramebufferStatusEXT);

        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);

        glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        glClearDepth(1.0f);

        ClientActiveTexture(GL_TEXTURE0_ARB);

        glShadeModel(GL_FLAT);
        glDepthFunc(GL_LEQUAL);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

        CullFace(true);
        AlphaTest(false);
        DepthTest(false);
        DepthWrite(false);
        Blend(false);
    }
RenderSystem::RenderSystem(sf::RenderTarget& p_renderTarget) : SortedIteratingSystem(ECS::Family::all<RenderComponent>().get(), DepthTest()), m_renderTarget(p_renderTarget)
{
}