示例#1
0
文件: video.c 项目: KrossX/SMCX
void video_proc(int msg, int word1, int word2, void *ptr)
{
	switch(msg)
	{
	case VMSG_DISP_BUFFER:
		if(disp_tex)
		{
			glBindTexture(GL_TEXTURE_2D, 0);
			glDeleteTextures(1, &disp_tex);
		}

		if(ptr)
		{
			glGenTextures(1, &disp_tex);
			glBindTexture(GL_TEXTURE_2D, disp_tex);

			disp_tw   = word1;
			disp_th   = word2;
			disp_data = ptr;

			glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, disp_tw, disp_th, 0, GL_RGBA, GL_UNSIGNED_BYTE, ptr);

			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_LINEAR);
			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
		}
		break;
	
	case VMSG_DISP_RES:
		disp_dw = word1;
		disp_dh = word2;
		update_quad();
		break;

	case VMSG_WINDOW_UPDATE:
		wnd_width   = word1;
		wnd_height  = word2;
		wnd_changed = 1;
		update_quad();
		break;
	}
}
示例#2
0
//protected
void GameofLife::update_this_element(stk::mesh::Entity elem)
{
    if (stk::topology::QUAD_4 == m_elemType)
        update_quad(elem);
    else if (stk::topology::HEX_8 == m_elemType)
        update_hex(elem);
    else if (stk::topology::TRIANGLE_3 == m_elemType)
        update_tri(elem);
    else
        ThrowRequire(true);
}