void shadowmapping_app::init_shader()
{
	ViewShader.init();
	ViewShader.attach(GL_VERTEX_SHADER, "render.vert");
	ViewShader.attach(GL_FRAGMENT_SHADER, "render.frag");
	ViewShader.link();
    view_program = ViewShader.GetProgram();

    uniforms.view.proj_matrix = glGetUniformLocation(view_program, "proj_matrix");
    uniforms.view.mv_matrix = glGetUniformLocation(view_program, "mv_matrix");
    uniforms.view.full_shading = glGetUniformLocation(view_program, "full_shading");
    uniforms.view.diffuse_albedo = glGetUniformLocation(view_program, "diffuse_albedo");

	DisplayShader.init();
    DisplayShader.attach( GL_VERTEX_SHADER, "display.vert");
    DisplayShader.attach( GL_FRAGMENT_SHADER, "display.frag");
	DisplayShader.link();
    display_program = DisplayShader.GetProgram();

    uniforms.dof.focal_distance = glGetUniformLocation(display_program, "focal_distance");
    uniforms.dof.focal_depth = glGetUniformLocation(display_program, "focal_depth");

	FilterShader.init();
    FilterShader.attach( GL_COMPUTE_SHADER, "gensat.comp");
	FilterShader.link();
    filter_program = FilterShader.GetProgram();
}
Example #2
0
void init_shader()
{
	selectionShader.init();
	selectionShader.attach(GL_VERTEX_SHADER, "selection.vert");
	selectionShader.attach(GL_FRAGMENT_SHADER, "selection.frag");
	selectionShader.link();
	selection_pro = selectionShader.GetProgram();
	code_loc = glGetUniformLocation(selection_pro, "code");
	pickingShader.init();
	pickingShader.attach(GL_VERTEX_SHADER, "picking.vert");
	pickingShader.attach(GL_FRAGMENT_SHADER, "picking.frag");
	pickingShader.link();
	picking_pro = pickingShader.GetProgram();
	diffuse_loc = glGetUniformLocation(picking_pro, "diffuse");
}
Example #3
0
//-----------------------------------------------------------------------------
void			RenderingContext::Draw(Shader& shader, GLRenderer& gl_renderer)
{
	__GL_CALL(glUseProgram(shader.GetProgram()))
	
	shader.SetUniforms(*this);
	gl_renderer.Draw(shader, *this);
}
Example #4
0
void init_shader()
{
	TriangleShader.init();
	TriangleShader.attach(GL_VERTEX_SHADER, "triangle.vert");
	TriangleShader.attach(GL_FRAGMENT_SHADER, "triangle.frag");
	TriangleShader.link();
	program = TriangleShader.GetProgram();
}
Example #5
0
void init_shader()
{
	toonShader.init();
	toonShader.attach(GL_VERTEX_SHADER, "toon3.vert");
	toonShader.attach(GL_FRAGMENT_SHADER, "toon3.frag");
	toonShader.link();
	toonShader.use();
	program = toonShader.GetProgram();
}
void ImageApp::init_shader()
{
	AppShader.init();
	AppShader.attach(GL_VERTEX_SHADER, "overdraw_count.vert");
	AppShader.attach(GL_FRAGMENT_SHADER, "overdraw_count.frag");
	AppShader.link();
	render_scene_prog  = AppShader.GetProgram();
	render_scene_uniforms.model_matrix = glGetUniformLocation(render_scene_prog, "model_matrix");
	render_scene_uniforms.view_matrix = glGetUniformLocation(render_scene_prog, "view_matrix");
	render_scene_uniforms.projection_matrix = glGetUniformLocation(render_scene_prog, "projection_matrix");
	render_scene_uniforms.aspect = glGetUniformLocation(render_scene_prog, "aspect");
	render_scene_uniforms.time = glGetUniformLocation(render_scene_prog, "time");

    BlitShader.init();
	BlitShader.attach(GL_VERTEX_SHADER, "blit.vert");
	BlitShader.attach(GL_FRAGMENT_SHADER, "blit.frag");
	BlitShader.link();
	resolve_program = BlitShader.GetProgram();
}
Example #7
0
int CreateGlContext()
{
	hDC = ::GetDC(glHwnd);
	if(!hDC)
		return -1;
	
	PIXELFORMATDESCRIPTOR pfd;
	memset(&pfd, 0, sizeof(pfd));
	pfd.nSize = sizeof(pfd);
	pfd.nVersion = 1;
	pfd.dwFlags = 
		PFD_DRAW_TO_WINDOW | 
		PFD_DOUBLEBUFFER | 
		PFD_SUPPORT_OPENGL |
		//PFD_SUPPORT_COMPOSITION |
		0x00008000 | 
		PFD_GENERIC_ACCELERATED;
	pfd.iPixelType = PFD_TYPE_RGBA;
	pfd.cColorBits = 32;
	pfd.cDepthBits = 24;
	pfd.cStencilBits = 8;
	pfd.iLayerType = PFD_MAIN_PLANE;
	int pf = ChoosePixelFormat(hDC, &pfd);
	if(!pf) {
		error ="ChoosePixelFormat error";
		return -2;
	}
	RLOG("OpenGL: ChoosePixelFormat ok..");
	if(!SetPixelFormat(hDC, pf, &pfd)) {
		error = "SetPixelFormat error";
		return -3;
	}
	DescribePixelFormat(hDC, pf, sizeof(PIXELFORMATDESCRIPTOR), &pfd);
	hRC = wglCreateContext(hDC);
	if(!hRC)
	{
		error = "wglCreateContext error";
		return -4;
	}
	RLOG("OpenGL: wglCreateContext ok..");
	if(!wglMakeCurrent(hDC, hRC))
	{
		error = "wglMakeCurrent error";
		return -5;
	}
	RLOG("OpenGL: wglMakeCurrent ok..");
	GLenum err = glewInit();
	if(err != GLEW_OK)
	{
		error = "Glew library initialization error: " + String((const char*) glewGetErrorString(err));
		return -6;
	}
	RLOG("OpenGL: glewInit ok..");
	
	Size sz = Ctrl::GetScreenSize();
	if(!screenFbo0.Create(sz.cx, sz.cy))
	{
		error = "Creating screen 0 fbo error: " + screenFbo0.GetError();		
		return -7;
	}

	if(!screenFbo1.Create(sz.cx, sz.cy))
	{
		error = "Creating screen 1 fbo error: " + screenFbo1.GetError();
		return -7;
	}
	
	RLOG("OpenGL: Creating fbo ok..");
	
	alphaMagProg.CompileProgram(alphaMagVert, alphaMagFrag);
	
	if(alphaMagProg.GetProgram() < 0)
	{
		error = alphaMagProg.GetError();
		return -8;
	}

	blurProg.CompileProgram(blurVert, blurFrag);
	
	if(blurProg.GetProgram() < 0)
	{
		error = blurProg.GetError();
		return -8;
	}
	
	RLOG("OpenGL: CompileProgram ok..");
	
	resources.GetFont(Tahoma(), true);
	resources.GetFont(Tahoma().Bold(), true);
	
	RLOG("OpenGL: Preloading fonts ok..");
	
	wglSwapIntervalEXT(1);
	
	if(glDrawMode == DRAW_ON_TIMER)
	{
		SetTimer(glHwnd, 1, 10, NULL);
		RLOG("OpenGL: SetTimer ok..");
	}
	
	glReady = true;
	return 1;
}