本文整理汇总了C++中oglplus::Context::BlendFunc方法的典型用法代码示例。如果您正苦于以下问题:C++ Context::BlendFunc方法的具体用法?C++ Context::BlendFunc怎么用?C++ Context::BlendFunc使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oglplus::Context
的用法示例。
在下文中一共展示了Context::BlendFunc方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gl
STBTruetypeExample(int argc, const char** argv)
: gl()
, tr(oglplus::text::STBTrueTypeRendering(0, 1, 2))
, font(tr.LoadFont((argc>1)?argv[1]:"FreeSans"))
, oglp_layout(tr.MakeLayout(font, "OGLplus"))
, desc_layout(tr.MakeLayout(font, u8"a C++ wrapper for OpenGL©"))
, time_layout(tr.MakeLayout(font, 25))
, rndr(tr.GetRenderer(
oglplus::FragmentShader(
oglplus::ObjectDesc("Pixel color"),
oglplus::StrCRef(
"#version 330\n"
"vec4 PixelColor("
" vec4 TexelColor,"
" vec3 GlyphPosition,"
" float GlyphXOffset,"
" vec2 GlyphExtent,"
" vec2 GlyphCoord,"
" float LayoutWidth"
")"
"{"
" float g = GlyphXOffset / LayoutWidth;"
" float b = GlyphCoord.y;"
" vec3 Color = mix("
" vec3(1.0, 0.2, 0.2+0.8*b), "
" vec3(0.2, 1.0, 0.2+0.8*b), "
" g"
" );"
" return vec4(Color, TexelColor.r);"
"}")
)
)
)
{
using namespace oglplus;
rndr.Use();
gl.ClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.Enable(Capability::Blend);
gl.BlendFunc(
BlendFunction::SrcAlpha,
BlendFunction::DstAlpha
);
}
示例2: gl
PangoCairoTextExample(int argc, const char** argv)
: gl()
, tr(0)
, font(tr.LoadFont((argc>2)?argv[2]:"Sans 38"))
, layout(tr.MakeLayout(font, 48))
, rndr(tr.GetRenderer(
oglplus::FragmentShader(
oglplus::ObjectDesc("Pixel color"),
"#version 330\n"
"uniform vec3 Color;"
"uniform float Opacity;"
"vec4 PixelColor("
" vec4 TexelColor,"
" vec3 GlyphPosition,"
" float GlyphXOffset,"
" vec2 GlyphExtent,"
" vec2 GlyphCoord,"
" float LayoutWidth"
")"
"{"
" return vec4(Color, TexelColor.r*Opacity);"
"}"
)
)
), rndr_color(rndr.GetUniform<oglplus::Vec3f>("Color"))
, rndr_opacity(rndr.GetUniform<GLfloat>("Opacity"))
, prev_interval(-1)
, current_line(0)
{
using namespace oglplus;
rndr.Use();
gl.ClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.Enable(Capability::Blend);
gl.BlendFunc(
BlendFunction::SrcAlpha,
BlendFunction::DstAlpha
);
rndr.SetAlignment(text::Alignment::Center);
}
示例3: gl
BitmapGlyphExample(int argc, const char** argv)
: gl()
, tr(0, 1, 2)
, font(tr.LoadFont((argc>1)?argv[1]:"Sans"))
, oglp_layout(tr.MakeLayout(font, "OGLplus"))
#if !OGLPLUS_NO_UNICODE_LITERALS
, desc_layout(tr.MakeLayout(font, u8"a C++ wrapper for OpenGL©"))
#else
, desc_layout(tr.MakeLayout(font, "a C++ wrapper for OpenGL(c)"))
#endif
, time_layout(tr.MakeLayout(font, 25))
, rndr(tr.GetRenderer(
oglplus::GeometryShader(
oglplus::ObjectDesc("Layout transform"),
"#version 150\n"
"uniform mat4 ProjectionMatrix,CameraMatrix,LayoutMatrix;"
"mat4 Matrix = ProjectionMatrix*CameraMatrix*LayoutMatrix;"
"vec4 TransformLayout(vec3 GlyphPosition)"
"{"
" return Matrix * vec4(GlyphPosition, 1.0);"
"}"
),
oglplus::GeometryShader(
oglplus::ObjectDesc("Glyph transform"),
"#version 150\n"
"uniform float Time;"
"vec3 TransformGlyph("
" vec4 LogicalMetrics,"
" vec4 InkMetrics,"
" vec2 Pos,"
" float XOffs,"
" float LayoutWidth,"
" int Idx"
")"
"{"
" float a = Idx*0.7+Time*2.4;"
" return vec3("
" Pos.x+XOffs,"
" Pos.y+sin(a)*0.1,"
" cos(a)*0.05"
" );"
"}"
),
oglplus::FragmentShader(
oglplus::ObjectDesc("Pixel color"),
"#version 150\n"
"vec4 PixelColor("
" vec4 TexelColor,"
" vec3 GlyphPosition,"
" float GlyphXOffset,"
" vec2 GlyphExtent,"
" vec2 GlyphCoord,"
" float LayoutWidth"
")"
"{"
" float g = GlyphXOffset / LayoutWidth - GlyphCoord.x;"
" vec3 Color = mix("
" vec3(1.0, 0.2+0.8*g, 0.2), "
" vec3(0.2, 0.2+0.8*g, 1.0), "
" (GlyphPosition.z+0.1)/0.2"
" );"
" return vec4(Color, TexelColor.r);"
"}"
)
)
), rndr_projection_matrix(rndr.GetUniform<oglplus::Mat4f>("ProjectionMatrix"))
, rndr_camera_matrix(rndr.GetUniform<oglplus::Mat4f>("CameraMatrix"))
, rndr_layout_matrix(rndr.GetUniform<oglplus::Mat4f>("LayoutMatrix"))
, rndr_time(rndr.GetUniform<GLfloat>("Time"))
{
using namespace oglplus;
rndr.Use();
gl.ClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.Enable(Capability::Blend);
gl.BlendFunc(
BlendFunction::SrcAlpha,
BlendFunction::DstAlpha
);
}
示例4: gl
//.........这里部分代码省略.........
"#version 150\n"
"uniform mat4 ProjectionMatrix,CameraMatrix,LayoutMatrix;"
"mat4 Matrix = ProjectionMatrix*CameraMatrix*LayoutMatrix;"
"vec4 TransformLayout(vec3 GlyphPosition)"
"{"
" return Matrix * vec4(GlyphPosition, 1.0);"
"}")
),
oglplus::GeometryShader(
oglplus::ObjectDesc("Glyph transform"),
oglplus::StrCRef("#version 150\n"
"uniform float Time;"
"uniform int Axis;"
"vec3 TransformGlyph("
" vec4 LogicalMetrics,"
" vec4 InkMetrics,"
" vec2 Pos,"
" float XOffs,"
" float LayoutWidth,"
" int Idx"
")"
"{"
" float a = Idx*0.3+Time*2.4;"
" float cx = cos(a);"
" float sx = sin(a);"
" mat3 m;"
" vec3 v;"
" vec3 o = vec3(XOffs, 0, 0);"
" vec3 p = vec3(Pos, 0);"
" if(Axis == 0)"
" {"
" m = mat3("
" 1, 0, 0,"
" 0, cx, sx,"
" 0,-sx, cx "
" );"
" v = vec3(0, (InkMetrics.z-InkMetrics.w)*0.5, 0);"
" }"
" else if(Axis == 1)"
" {"
" m = mat3("
" cx, 0,-sx,"
" 0, 1, 0,"
" sx, 0, cx "
" );"
" v = vec3((InkMetrics.y-InkMetrics.x)*0.5, 0, 0);"
" }"
" else if(Axis == 2)"
" {"
" m = mat3("
" 1, 0, 0,"
" 0,-cx,-sx,"
" 0, sx,-cx "
" );"
" v = vec3(0, 0, 0);"
" }"
" return m*(p-v)+(o+v);"
"}")
),
oglplus::FragmentShader(
oglplus::ObjectDesc("Pixel color"),
oglplus::StrCRef("#version 150\n"
"vec4 PixelColor("
" vec4 TexelColor,"
" vec3 GlyphPosition,"
" float GlyphXOffset,"
" vec2 GlyphExtent,"
" vec2 GlyphCoord,"
" float LayoutWidth"
")"
"{"
" float g = GlyphXOffset / LayoutWidth;"
" vec3 Color = mix("
" vec3(1.0, 0.2, 0.2), "
" vec3(0.2, 0.4, 1.0), "
" g"
" );"
" return vec4(Color, TexelColor.r);"
"}")
)
)
), rndr_projection_matrix(rndr.GetUniform<oglplus::Mat4f>("ProjectionMatrix"))
, rndr_camera_matrix(rndr.GetUniform<oglplus::Mat4f>("CameraMatrix"))
, rndr_layout_matrix(rndr.GetUniform<oglplus::Mat4f>("LayoutMatrix"))
, rndr_time(rndr.GetUniform<GLfloat>("Time"))
, rndr_axis(rndr.GetUniform<GLint>("Axis"))
{
using namespace oglplus;
rndr.Use();
gl.ClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.Enable(Capability::Blend);
gl.BlendFunc(
BlendFunction::SrcAlpha,
BlendFunction::DstAlpha
);
}