コード例 #1
0
HRESULT CShaderManager::CreateShader(const SHADER_TYPE& eShader, const LPCTSTR pFileName)
{
	CShader* pShader = FindShader(eShader);

	if(pShader)
	{
		return S_OK;
	}

	switch(eShader)
	{
	case SHADER_DEFAULT:
		pShader = new CDefaultShader;
		break;
	default:
		break;
	}
	
	
	if(FAILED(pShader->Init(pFileName)))
	{
		return E_FAIL;
	}

	m_mapShader.insert(map<SHADER_TYPE, CShader*>::value_type(eShader, pShader));

	return S_OK;
}
コード例 #2
0
GLvoid CGLES3Context::CreateShaderObject(GLenum type, GLuint shaderId)
{
    CShaderObj *pShader = FindShader(shaderId);

    if (pShader)
    {
        pShader->m_type = type;
        return;
    }

    pShader = new CShaderObj(shaderId, type);
    if (pShader)
    {
        if (type == GL_VERTEX_SHADER)
        {
            pShader->m_type = GL_VERTEX_SHADER;
        }
        else
        {
            pShader->m_type = GL_FRAGMENT_SHADER;
        }

        shaderMap.insert(std::make_pair(shaderId, pShader));
    }
    else
    {
        Abort("Cannot allocate shader object\n");
    }
}
コード例 #3
0
GLvoid CGLES3Context::DeleteShaderObject(GLuint shaderId)
{
    CShaderObj  *pShader = FindShader(shaderId);

    if (pShader)
    {
        shaderMap.erase(shaderId);
        delete (pShader);
    }
}
コード例 #4
0
GLvoid CGLES3Context::ApiAttachShader(GLuint program, GLuint shader)
{
    CProgramObj *pProgram   = FindProgram(program);
    CShaderObj  *pShader    = FindShader(shader);
    GLenum      shaderType  = pShader?pShader->m_type:GL_FRAGMENT_SHADER;

    if (shaderType == GL_FRAGMENT_SHADER)
    {
        pProgram->m_pFragment = pShader;
    }
    else
    {
        pProgram->m_pVertex = pShader;
    }

    CTX_ANALYZER_FUNC2(AttachShader, GLOutput, GL_OUT_BUF_SIZE, program, shader);
}
コード例 #5
0
ファイル: gl_font.cpp プロジェクト: RkShaRkz/Quake2
void ResetFonts()
{
	fontCount = 0;

	CFont *f;
	// hardcoded font fot "conchars" - uses different shader flags, plus different texture location
	f = gl_concharsFont = &fontArray[fontCount++];
	f->Name         = "conchars";
	f->shader       = FindShader("pics/conchars", SHADER_ALPHA);
	f->firstChar    = 0;
	f->charWidth    = 8;
	f->charHeight   = 8;
	f->outWidth     = 8;
	f->outHeight    = 8;
	f->spacing      = 0;
	// load other fonts
	gl_debugFont   = FindFont("debug");
	gl_consoleFont = FindFont("console");
}
コード例 #6
0
GLvoid CGLES3Context::ApiDetachShader(GLuint program, GLuint shader)
{
    CProgramObj *pProg = FindProgram(program);
    CShaderObj  *pShader = FindShader(shader);

    if (!pProg || !pShader)
        return;

    if (pProg->m_pVertex == pShader)
    {
        pProg->m_pVertex = NULL;
    }
    else if (pProg->m_pFragment == pShader)
    {
        pProg->m_pFragment = NULL;
    }

    CTX_ANALYZER_FUNC2(DetachShader, GLOutput, GL_OUT_BUF_SIZE, program, shader);
}
コード例 #7
0
ファイル: gl_font.cpp プロジェクト: RkShaRkz/Quake2
static void cBitmap(int argc, char **argv)
{
	loadingFont->shader = FindShader(va("fonts/%s", argv[1]), SHADER_MAKEALPHA);
}
コード例 #8
0
GLvoid CGLES3Context::ApiCompileShader(GLuint shader)
{
    CShaderObj *p = FindShader(shader);
    CompileShader(p);
    CTX_ANALYZER_FUNC1(CompileShader, GLOutput, GL_OUT_BUF_SIZE, shader);
}