您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CreateShader函数代码示例

51自学网 2021-06-01 20:15:08
  C++
这篇教程C++ CreateShader函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CreateShader函数的典型用法代码示例。如果您正苦于以下问题:C++ CreateShader函数的具体用法?C++ CreateShader怎么用?C++ CreateShader使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CreateShader函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: loadShaders

    void loadShaders() {	    std::vector<GLuint> shaderList;	    shaderList.push_back(CreateShader(GL_VERTEX_SHADER, SPED3_VertexShader));	    shaderList.push_back(CreateShader(GL_FRAGMENT_SHADER, SPED3_FragmentShader));	    shaderProgram = CreateProgram(shaderList);	    std::for_each(shaderList.begin(), shaderList.end(), glDeleteShader);        projMatrixLoc = glGetUniformLocation(shaderProgram, "projMatrix");        rotMatrixLoc = glGetUniformLocation(shaderProgram, "rotMatrix");        //viewMatrixLoc = glGetUniformLocation(shaderProgram, "viewMatrix");                setIdentityMatrix(rotMatrix, 4);        rotMatrix[3*4+2] = 5.0f;	}
开发者ID:srjek,项目名称:dcpu16,代码行数:16,


示例2: BTDebugDrawer

void RenderManager::Init(){	if (!m_bulletDebugDrawer)		m_bulletDebugDrawer = new BTDebugDrawer();	glewInit();	//Create shaders and add to vector	std::vector<GLuint> shaderList;	shaderList.push_back(CreateShader(GL_VERTEX_SHADER, ReadFileToString("VertexShader.glsl")));	shaderList.push_back(CreateShader(GL_FRAGMENT_SHADER, ReadFileToString("FragmentShader.glsl")));	//Create program	m_program = CreateProgram(shaderList);	m_bulletDebugDrawer->SetProgram(m_program);	m_ui.m_openGLWidget->rm = this;}
开发者ID:inzombiak,项目名称:BulletTest,代码行数:16,


示例3: CreateEffect

//----------------------------------------------------------------------------bool FxCompiler::CreateEffect (const Program& vProgram,    const Program& pProgram){    InputArray vInputs, pInputs;    OutputArray vOutputs, pOutputs;    ConstantArray vConstants, pConstants;    SamplerArray vSamplers, pSamplers;    if (!Process(vProgram, vInputs, vOutputs, vConstants, vSamplers))    {        return false;    }    if (!Process(pProgram, pInputs, pOutputs, pConstants, pSamplers))    {        return false;    }    mVShader = (VertexShader*)CreateShader(true, vProgram, vInputs, vOutputs,        vConstants, vSamplers);    mPShader = (PixelShader*)CreateShader(false, pProgram, pInputs, pOutputs,        pConstants, pSamplers);    VisualPass* pass = new0 VisualPass();    pass->SetVertexShader(mVShader);    pass->SetPixelShader(mPShader);    // TODO.  Once Cg FX files are parsed, the global state from each pass    // should be set here.  For now, the application is responsible for    // setting the global state after the *.wmfx file is loaded.    pass->SetAlphaState(new0 AlphaState());    pass->SetCullState(new0 CullState());    pass->SetDepthState(new0 DepthState());    pass->SetOffsetState(new0 OffsetState());    pass->SetStencilState(new0 StencilState());    pass->SetWireState(new0 WireState());    // TODO.  Once Cg FX files are parsed, we might have multiple techniques    // or multiple passes per technique.    VisualTechnique* technique = new0 VisualTechnique();    technique->InsertPass(pass);    mEffect = new0 VisualEffect();    mEffect->InsertTechnique(technique);    return true;}
开发者ID:rasslingcats,项目名称:calico,代码行数:48,


示例4: SPADES_MARK_FUNCTION

		GLProgram *GLProgramManager::CreateProgram(const std::string &name) {			SPADES_MARK_FUNCTION();			SPLog("Loading GLSL program '%s'", name.c_str());			std::string text = FileManager::ReadAllBytes(name.c_str());			std::vector<std::string> lines = SplitIntoLines(text);			GLProgram *p = new GLProgram(device, name);			for (size_t i = 0; i < lines.size(); i++) {				std::string text = TrimSpaces(lines[i]);				if (text.empty())					break;				if (text == "*shadow*") {					std::vector<GLShader *> shaders =					  GLShadowShader::RegisterShader(this, settings, false);					for (size_t i = 0; i < shaders.size(); i++)						p->Attach(shaders[i]);					continue;				} else if (text == "*shadow-lite*") {					std::vector<GLShader *> shaders =					  GLShadowShader::RegisterShader(this, settings, false, true);					for (size_t i = 0; i < shaders.size(); i++)						p->Attach(shaders[i]);					continue;				} else if (text == "*shadow-variance*") {					std::vector<GLShader *> shaders =					  GLShadowShader::RegisterShader(this, settings, true);					for (size_t i = 0; i < shaders.size(); i++)						p->Attach(shaders[i]);					continue;				} else if (text == "*dlight*") {					std::vector<GLShader *> shaders = GLDynamicLightShader::RegisterShader(this);					for (size_t i = 0; i < shaders.size(); i++)						p->Attach(shaders[i]);					continue;				} else if (text == "*shadowmap*") {					std::vector<GLShader *> shaders = GLShadowMapShader::RegisterShader(this);					for (size_t i = 0; i < shaders.size(); i++)						p->Attach(shaders[i]);					continue;				} else if (text[0] == '*') {					SPRaise("Unknown special shader: %s", text.c_str());				} else if (text[0] == '#') {					continue;				}				GLShader *s = CreateShader(text);				p->Attach(s);			}			Stopwatch sw;			p->Link();			SPLog("Successfully linked GLSL program '%s' in %.3fms", name.c_str(),			      sw.GetTime() * 1000.);			// p->Validate();			return p;		}
开发者ID:Rootmars,项目名称:openspades,代码行数:59,


示例5: glut_viewer_load_program

GLhandleARB glut_viewer_load_program(char* vp, char* fp) {    GLhandleARB result ;    if(!CreateShader(vp, fp, &result)) {        std::cerr << "Could not create shader from " << vp << " and " << fp << std::endl ;        abort() ;    }    return result ;}
开发者ID:Amy1014,项目名称:shape-packing,代码行数:8,


示例6: CreateShader

Shader::Shader(const std::string& filename){	m_shaders[0] = CreateShader("./Res/Shaders/" + filename + ".vs", GL_VERTEX_SHADER); //Creates shader ID	m_shaders[1] = CreateShader("./Res/Shaders/" + filename + ".fs", GL_FRAGMENT_SHADER);	m_program = glCreateProgram();	glAttachShader(m_program, m_shaders[0]);	glAttachShader(m_program, m_shaders[1]);	glLinkProgram(m_program);	CheckShaderError(m_program, true, GL_LINK_STATUS, "Error: Program linking failed.");	glValidateProgram(m_program);	CheckShaderError(m_program, true, GL_VALIDATE_STATUS, "Error: Program validation failed.");	glUseProgram(m_program);}
开发者ID:CurunirCingar,项目名称:OpenGL_Framework,代码行数:17,


示例7: Init

void CUIStaticItem::Init(LPCSTR tex, LPCSTR sh, float left, float top, u32 align){	uFlags.set(flValidRect, FALSE);	CreateShader	(tex,sh);	SetPos			(left,top);	SetAlign		(align);}
开发者ID:2asoft,项目名称:xray,代码行数:8,


示例8: LoadShader

bool cShader::BuildShader(const std::string& vs_filename, const std::string& ps_filename){	GLuint vs = LoadShader(vs_filename, GL_VERTEX_SHADER);	GLuint ps = LoadShader(ps_filename, GL_FRAGMENT_SHADER);	mProg = CreateShader(vs, ps);	return mProg != -1;}
开发者ID:saadmahboob,项目名称:DeepLoco,代码行数:8,


示例9: while

void cShaderManager::CreateProgramWithFile( const std::string ShaderName ){	std::fstream File;	File.open( ShaderName, std::ios::in );	if( !File.is_open() )	{		std::cerr << "ERROR: Blad wczytywania shaderow z pliku: " << ShaderName << std::endl;		return;	}	std::string buffor;	std::string name;	std::vector< std::string > Shaders;	//std::vector< std::string > Fragment;	while( !File.eof() )	{		File >> buffor;		switch (buffor[0])		{			case 'v':				File >> buffor;				name = GetName( buffor );				Shaders.push_back( name );				CreateShader( name, SHADERTYPE::VertexShader, buffor );				break;			case 'f':				File >> buffor;				name = GetName( buffor );				Shaders.push_back( name );				CreateShader( name, SHADERTYPE::FragmentShader, buffor );				break;		default:			break;		}	}	File.close();	std::string ProgramName =  GetName( ShaderName );	CreateProgram( ProgramName );	cProgramShader* Program = GetProgram( ProgramName );	for( unsigned i = 0; i < Shaders.size(); i++ )	{		Program->AttachShader( GetShader( Shaders[i] ) );	}	Program->Link();}
开发者ID:Kaaml,项目名称:Vxy,代码行数:45,


示例10: WebGLContextBoundObject

WebGLShader::WebGLShader(WebGLContext* webgl, GLenum type)    : WebGLContextBoundObject(webgl)    , mGLName(CreateShader(webgl->GL(), type))    , mType(type)    , mTranslationSuccessful(false)    , mCompilationSuccessful(false){    mContext->mShaders.insertBack(this);}
开发者ID:70599,项目名称:Waterfox,代码行数:9,


示例11: attach_shader

// Compiles a GL shader and attaches it to a program. Returns the shader ID if// successful, or 0 if not.static GrGLuint attach_shader(const GrGLContext& glCtx,                              GrGLuint programId,                              GrGLenum type,                              const SkString& shaderSrc) {    const GrGLInterface* gli = glCtx.interface();    GrGLuint shaderId;    GR_GL_CALL_RET(gli, shaderId, CreateShader(type));    if (0 == shaderId) {        return 0;    }    const GrGLchar* sourceStr = shaderSrc.c_str();    GrGLint sourceLength = static_cast<GrGLint>(shaderSrc.size());    GR_GL_CALL(gli, ShaderSource(shaderId, 1, &sourceStr, &sourceLength));    GR_GL_CALL(gli, CompileShader(shaderId));    // Calling GetShaderiv in Chromium is quite expensive. Assume success in release builds.    bool checkCompiled = !glCtx.isChromium();#ifdef SK_DEBUG    checkCompiled = true;#endif    if (checkCompiled) {        GrGLint compiled = GR_GL_INIT_ZERO;        GR_GL_CALL(gli, GetShaderiv(shaderId, GR_GL_COMPILE_STATUS, &compiled));        if (!compiled) {            GrGLint infoLen = GR_GL_INIT_ZERO;            GR_GL_CALL(gli, GetShaderiv(shaderId, GR_GL_INFO_LOG_LENGTH, &infoLen));            SkAutoMalloc log(sizeof(char)*(infoLen+1)); // outside if for debugger            if (infoLen > 0) {                // retrieve length even though we don't need it to workaround bug in Chromium cmd                // buffer param validation.                GrGLsizei length = GR_GL_INIT_ZERO;                GR_GL_CALL(gli, GetShaderInfoLog(shaderId, infoLen+1,                                                 &length, (char*)log.get()));                GrPrintf(shaderSrc.c_str());                GrPrintf("/n%s", log.get());            }            SkDEBUGFAIL("Shader compilation failed!");            GR_GL_CALL(gli, DeleteShader(shaderId));            return 0;        }    }    if (c_PrintShaders) {        GrPrintf(shaderSrc.c_str());        GrPrintf("/n");    }    // Attach the shader, but defer deletion until after we have linked the program.    // This works around a bug in the Android emulator's GLES2 wrapper which    // will immediately delete the shader object and free its memory even though it's    // attached to a program, which then causes glLinkProgram to fail.    GR_GL_CALL(gli, AttachShader(programId, shaderId));    return shaderId;}
开发者ID:cnh,项目名称:skia,代码行数:59,


示例12: wmain

/*-------------------------------------------	main
C++ CreateSocket函数代码示例
C++ CreateSession函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。