Пример #1
0
// draw a zero to destination alpha
void AppLocal::DrawScreenMask( const ovrMatrix4f & mvp, const float fadeFracX, const float fadeFracY )
{
	Matrix4f mvpMatrix( mvp );

	glUseProgram( OverlayScreenFadeMaskProgram.program );

	glUniformMatrix4fv( OverlayScreenFadeMaskProgram.uMvp, 1, GL_FALSE, mvpMatrix.Transposed().M[0] );

	if ( FadedScreenMaskSquare.vertexArrayObject == 0 )
	{
		FadedScreenMaskSquare = BuildFadedScreenMask( fadeFracX, fadeFracY );
	}

	glColorMask( 0.0f, 0.0f, 0.0f, 1.0f );
	FadedScreenMaskSquare.Draw();
	glColorMask( 1.0f, 1.0f, 1.0f, 1.0f );
}
Пример #2
0
// draw a zero to destination alpha
void DrawScreenMask( const ovrMatrix4f & mvp, const float fadeFracX, const float fadeFracY )
{
	OVR::Matrix4f mvpMatrix( mvp );

	static OVR::GlProgram prog;
	if ( !prog.program )
	{
		prog = OVR::BuildProgram(
			"uniform mat4 Mvpm;\n"
			"attribute vec4 VertexColor;\n"
			"attribute vec4 Position;\n"
			"varying  lowp vec4 oColor;\n"
			"void main()\n"
			"{\n"
			"   gl_Position = Mvpm * Position;\n"
			"   oColor = vec4( 1.0, 1.0, 1.0, 1.0 - VertexColor.x );\n"
			"}\n"
		,
			"varying lowp vec4	oColor;\n"
			"void main()\n"
			"{\n"
			"	gl_FragColor = oColor;\n"
			"}\n"
		);

	}
	glUseProgram( prog.program );

	glUniformMatrix4fv( prog.uMvp, 1, GL_FALSE, mvpMatrix.Transposed().M[0] );

	static OVR::GlGeometry	VignetteSquare;
	if ( VignetteSquare.vertexArrayObject == 0 )
	{
		VignetteSquare = BuildFadedScreenMask( fadeFracX, fadeFracY );
	}

	glColorMask( 0, 0, 0, 1 );
	VignetteSquare.Draw();
	glColorMask( 1, 1, 1, 1 );
}