本文整理汇总了C++中operations::use方法的典型用法代码示例。如果您正苦于以下问题:C++ operations::use方法的具体用法?C++ operations::use怎么用?C++ operations::use使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类operations
的用法示例。
在下文中一共展示了operations::use方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: vs
example_program(void)
{
shader vs(GL.vertex_shader);
vs.source(glsl_literal(
"#version 140\n"
"uniform mat4 Projection;\n"
"in vec4 Position;\n"
"in vec3 Normal;\n"
"in vec3 BoxCoord;\n"
"in vec3 TexCoord;\n"
"out vec2 vertCoord;\n"
"out vec3 vertColor1;\n"
"out vec3 vertColor2;\n"
"void main(void)\n"
"{\n"
" gl_Position = Projection*Position;\n"
" vertColor1 = mix(BoxCoord,abs(Normal),0.5);\n"
" vertColor2 = vertColor1 * 0.3;\n"
" vertCoord = TexCoord.xy*(2+TexCoord.z);\n"
"}\n"
));
vs.compile();
shader fs(GL.fragment_shader);
fs.source(glsl_literal(
"#version 140\n"
"in vec2 vertCoord;\n"
"in vec3 vertColor1;\n"
"in vec3 vertColor2;\n"
"out vec3 fragColor;\n"
"float pattern(vec2 tc)\n"
"{\n"
" return float((int(tc.x)%2+int(tc.y)%2)%2);\n"
"}\n"
"void main(void)\n"
"{\n"
" float c = pattern(vertCoord);\n"
" fragColor = mix(vertColor1, vertColor2, c);\n"
"}\n"
));
fs.compile();
attach(vs);
attach(fs);
link();
report_link_error();
gl.use(*this);
gl.query_location(projection, *this, "Projection");
}
示例2: set_projection
void set_projection(const example_state_view& state)
{
auto projection =
matrix_perspective::y(
right_angle_(),
state.aspect(),
0.5f, 50.f
)*matrix_orbiting_y_up(
vec3(),
smooth_lerp(1.5f, 5.0f, cam_orbit),
turns_(cam_turns),
smooth_oscillate(radians_(1.5f), cam_pitch)
);
gl.use(light_prog);
gl.uniform(light_prog.projection, projection);
gl.use(erase_prog);
gl.uniform(erase_prog.projection, projection);
}
示例3:
voronoi_program(const example_params& params)
{
std::string path = params.get_resource_file_path(
example_resource_type::program_source,
cstr_ref("014_voronoi.oglpprog")
);
_init(program_source_file(cstr_ref(path)));
gl.use(*this);
gl.query_location(offset_loc, *this, "Offset");
gl.query_location(scale_loc, *this, "Scale");
}
示例4:
lighting_program(const example_params& params)
{
std::string path = params.get_resource_file_path(
example_resource_type::program_source,
cstr_ref("028_lighting-lt.oglpprog")
);
build_program(*this, program_source_file(cstr_ref(path)));
gl.use(*this);
gl.query_location(projection, *this, "Projection");
gl.query_location(modelview, *this, "Modelview");
}
示例5: render
void render(const example_state_view& state)
override
{
gl.use(erase_prog);
gl.disable(GL.depth_test);
background.use();
background.draw();
shp_turns += 0.1f*state.frame_duration().value();
gl.use(light_prog);
gl.uniform(
light_prog.modelview,
matrix_rotation_x(turns_(shp_turns)/1)*
matrix_rotation_y(turns_(shp_turns)/2)*
matrix_rotation_z(turns_(shp_turns)/3)
);
gl.clear(GL.depth_buffer_bit);
gl.enable(GL.depth_test);
shape.use();
shape.draw();
}
示例6: vs
example_program(void)
{
shader vs(GL.vertex_shader);
vs.source(glsl_literal(
"#version 140\n"
"uniform mat4 Projection;"
"uniform mat4 Modelview;"
"uniform vec3 LightPos;"
"in vec4 Position;\n"
"in vec3 Normal;\n"
"in vec2 TexCoord;\n"
"out vec3 vertNormal;\n"
"out vec3 vertLightDir;\n"
"out vec2 vertTexCoord;\n"
"void main(void)\n"
"{\n"
" gl_Position = Modelview*Position;\n"
" vertNormal = mat3(Modelview)*Normal;\n"
" vertLightDir = LightPos - gl_Position.xyz;\n"
" vertTexCoord = TexCoord;\n"
" gl_Position = Projection*gl_Position;\n"
"}\n"
));
vs.compile();
vs.report_compile_error();
shader fs(GL.fragment_shader);
fs.source(glsl_literal(
"#version 140\n"
"uniform sampler2D CubeTex;"
"in vec3 vertNormal;\n"
"in vec3 vertLightDir;\n"
"in vec2 vertTexCoord;\n"
"out vec4 fragColor;\n"
"void main(void)\n"
"{\n"
" float d=0.3*dot(vertNormal, normalize(vertLightDir));\n"
" float i=0.6 + max(d, 0.0);\n"
" fragColor = texture(CubeTex, vertTexCoord)*i;\n"
"}\n"
));
fs.compile();
fs.report_compile_error();
attach(vs);
attach(fs);
link();
report_link_error();
gl.use(*this);
gl.query_location(projection, *this, "Projection");
gl.query_location(modelview, *this, "Modelview");
gl.query_location(light_pos, *this, "LightPos");
gl.query_location(cube_tex, *this, "CubeTex");
}
示例7: vs
example_mandelbrot(void)
: offset_x(-0.5f)
, offset_y(0.0f)
, scale(1.0f)
, aspect(1.0f)
{
shader vs(GL.vertex_shader);
vs.source(glsl_literal(
"#version 130\n"
"uniform vec2 Offset;\n"
"uniform vec2 Scale;\n"
"in vec2 Position;\n"
"in vec2 Coord;\n"
"out vec2 vertCoord;\n"
"void main(void)\n"
"{\n"
" vertCoord = Coord*Scale+Offset;\n"
" gl_Position = vec4(Position, 0.0, 1.0);\n"
"}\n"
));
vs.compile();
shader fs(GL.fragment_shader);
fs.source(glsl_literal(
"#version 130\n"
"uniform sampler1D gradient;\n"
"in vec2 vertCoord;\n"
"out vec4 fragColor;\n"
"void main(void)\n"
"{\n"
" vec2 z = vec2(0.0, 0.0);\n"
" vec2 c = vertCoord;\n"
" int i = 0, max = 256;\n"
" while((i != max) && (distance(z, c) < 2.0))\n"
" {\n"
" vec2 zn = vec2(\n"
" z.x * z.x - z.y * z.y + c.x,\n"
" 2.0 * z.x * z.y + c.y\n"
" );\n"
" z = zn;\n"
" ++i;\n"
" }\n"
" float a = float(i)/float(max);\n"
" fragColor = texture(gradient, a+sqrt(length(c))*0.1);\n"
"} \n"
));
fs.compile();
prog.attach(vs);
prog.attach(fs);
prog.link();
gl.use(prog);
gl.query_location(offset_loc, prog, "Offset");
gl.query_location(scale_loc, prog, "Scale");
gl.uniform(offset_loc, offset_x, offset_y);
gl.bind(vao);
GLfloat position_data[4*2] = {
-1.0f, -1.0f,
-1.0f, 1.0f,
1.0f, -1.0f,
1.0f, 1.0f
};
gl.bind(GL.array_buffer, positions);
gl.buffer_data(GL.array_buffer, position_data, GL.static_draw);
vertex_attrib_location va_p;
gl.query_location(va_p, prog, "Position");
gl.vertex_array_attrib_pointer(
va_p,
2, GL.float_,
false, 0, nullptr
);
gl.enable_vertex_array_attrib(va_p);
GLfloat coord_data[4*2] = {
-1.0f, -1.0f,
-1.0f, 1.0f,
1.0f, -1.0f,
1.0f, 1.0f
};
gl.bind(GL.array_buffer, coords);
gl.buffer_data(GL.array_buffer, coord_data, GL.static_draw);
vertex_attrib_location va_c;
gl.query_location(va_c, prog, "Coord");
gl.vertex_array_attrib_pointer(
va_c,
2, GL.float_,
false, 0, nullptr
);
gl.enable_vertex_array_attrib(va_c);
//.........这里部分代码省略.........
示例8: program
erase_program(const example_params& params)
: program(build_program(_get_source(params)))
{
gl.use(*this);
gl.query_location(projection, *this, "Projection");
}