Пример #1
0
void fdrawcheckerboard(float x1, float y1, float x2, float y2)
{
	unsigned char col1[4] = {40, 40, 40}, col2[4] = {50, 50, 50};

	glColor3ubv(col1);
	glRectf(x1, y1, x2, y2);
	glColor3ubv(col2);

	GPU_basic_shader_bind(GPU_SHADER_STIPPLE | GPU_SHADER_USE_COLOR);
	GPU_basic_shader_stipple(GPU_SHADER_STIPPLE_CHECKER_8PX);
	glRectf(x1, y1, x2, y2);
	GPU_basic_shader_bind(GPU_SHADER_USE_COLOR);
}
Пример #2
0
static void wm_method_draw_stereo3d_interlace(wmWindow *win)
{
	wmDrawData *drawdata;
	int view;
	bool flag;
	bool swap = (win->stereo3d_format->flag & S3D_INTERLACE_SWAP) != 0;
	enum eStereo3dInterlaceType interlace_type = win->stereo3d_format->interlace_type;

	for (view = 0; view < 2; view ++) {
		flag = swap ? !view : view;
		drawdata = BLI_findlink(&win->drawdata, (view * 2) + 1);
		GPU_basic_shader_bind(GPU_SHADER_STIPPLE);
		switch (interlace_type) {
			case S3D_INTERLACE_ROW:
				if (flag)
					GPU_basic_shader_stipple(GPU_SHADER_STIPPLE_S3D_INTERLACE_ROW_SWAP);
				else
					GPU_basic_shader_stipple(GPU_SHADER_STIPPLE_S3D_INTERLACE_ROW);
				break;
			case S3D_INTERLACE_COLUMN:
				if (flag)
					GPU_basic_shader_stipple(GPU_SHADER_STIPPLE_S3D_INTERLACE_COLUMN_SWAP);
				else
					GPU_basic_shader_stipple(GPU_SHADER_STIPPLE_S3D_INTERLACE_COLUMN);
				break;
			case S3D_INTERLACE_CHECKERBOARD:
			default:
				if (flag)
					GPU_basic_shader_stipple(GPU_SHADER_STIPPLE_S3D_INTERLACE_CHECKER_SWAP);
				else
					GPU_basic_shader_stipple(GPU_SHADER_STIPPLE_S3D_INTERLACE_CHECKER);
				break;
		}

		wm_triple_draw_textures(win, drawdata->triple, 1.0f, true);
		GPU_basic_shader_bind(GPU_SHADER_USE_COLOR);
	}
	interlace_prev_type = interlace_type;
	interlace_prev_swap = swap;
}