示例#1
0
文件: main.cpp 项目: HLH15/24783
/* virtual */ void FsLazyWindowApplication::Initialize(int argc,char *argv[])
{
	FsChangeToProgramDir();
	colorAsAttrib.CompileFile(
	    "color_as_attribute_vertex_shader.glsl",
	    "color_as_attribute_fragment_shader.glsl");
	uniformColor.CompileFile(
	    "uniform_color_vertex_shader.glsl",
	    "uniform_color_fragment_shader.glsl");
}
int main(void)
{
	int key;
	struct YsGLSLBitmapRenderer *bitmapRenderer;
	YsBitmap bmp;

	FsChangeToProgramDir();

	bmp.LoadPng("flash01.png");
	printf("Bitmap dimension %dx%d\n",bmp.GetWidth(),bmp.GetHeight());

	FsOpenWindow(32,32,640,480,1);

	bitmapRenderer=YsGLSLCreateBitmapRenderer();

	key=FSKEY_NULL;
	while(FSKEY_ESC!=key)
	{
		FsPollDevice();

		key=FsInkey();

		int mx,my,lb,mb,rb;
		FsGetMouseState(lb,mb,rb,mx,my);

		int wid,hei;
		FsGetWindowSize(wid,hei);

		glViewport(0,0,wid,hei);

		glClearColor(0.0,0.0,0.0,0.0);
		glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

		glColor3ub(255,255,255);
		glBegin(GL_LINES);
		glVertex2i(270,240);
		glVertex2i(370,240);
		glVertex2i(320,190);
		glVertex2i(320,290);
		glEnd();

		YsGLSLUseBitmapRenderer(bitmapRenderer);
		YsGLSLRenderRGBABitmap2D(bitmapRenderer,320,240,YSGLSL_HALIGN_RIGHT,YSGLSL_VALIGN_BOTTOM,bmp.GetWidth(),bmp.GetHeight(),bmp.GetRGBABitmapPointer());
		YsGLSLEndUseBitmapRenderer(bitmapRenderer);

		FsSwapBuffers();

		FsSleep(10);
	}

	YsGLSLDeleteBitmapRenderer(bitmapRenderer);

	return 0;
}
示例#3
0
文件: main.cpp 项目: HLH15/24783
/* virtual */ void FsLazyWindowApplication::Initialize(int argc,char *argv[])
{
	FsChangeToProgramDir();
	colorAsAttrib.CompileFile(
	    "color_as_attribute_vertex_shader.glsl",
	    "color_as_attribute_fragment_shader.glsl");
	uniformColor.CompileFile(
	    "uniform_color_vertex_shader.glsl",
	    "uniform_color_fragment_shader.glsl");
	sampler2d.CompileFile(
	    "sampler2d_vertex_shader.glsl",
	    "sampler2d_fragment_shader.glsl");

	glGenTextures(1,&texIdent);
	glActiveTexture(GL_TEXTURE0);
	glBindTexture(GL_TEXTURE_2D,texIdent);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
	glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,checker_pattern_wid,checker_pattern_hei,0,GL_RGBA,GL_UNSIGNED_BYTE,checker_pattern);
}