本文整理汇总了C++中nux::GraphicsEngine::UsingGLSLCodePath方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphicsEngine::UsingGLSLCodePath方法的具体用法?C++ GraphicsEngine::UsingGLSLCodePath怎么用?C++ GraphicsEngine::UsingGLSLCodePath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nux::GraphicsEngine
的用法示例。
在下文中一共展示了GraphicsEngine::UsingGLSLCodePath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetGeometry
void
PanelView::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
{
nux::Geometry const& geo = GetGeometry();
bool overlay_mode = InOverlayMode();
int bgs = 1;
GfxContext.PushClippingRectangle(geo);
GfxContext.GetRenderStates().SetBlend(true);
GfxContext.GetRenderStates().SetPremultipliedBlend(nux::SRC_OVER);
if (bg_blur_texture_.IsValid() && IsTransparent())
{
nux::Geometry const& geo_absolute = GetAbsoluteGeometry();
nux::TexCoordXForm texxform_blur_bg;
texxform_blur_bg.flip_v_coord = true;
texxform_blur_bg.SetTexCoordType(nux::TexCoordXForm::OFFSET_COORD);
texxform_blur_bg.uoffset = geo.x / static_cast<float>(geo_absolute.width);
texxform_blur_bg.voffset = geo.y / static_cast<float>(geo_absolute.height);
nux::ROPConfig rop;
rop.Blend = false;
rop.SrcBlend = GL_ONE;
rop.DstBlend = GL_ONE_MINUS_SRC_ALPHA;
#ifndef NUX_OPENGLES_20
if (GfxContext.UsingGLSLCodePath())
gPainter.PushCompositionLayer(GfxContext, geo,
bg_blur_texture_,
texxform_blur_bg,
nux::color::White,
WindowManager::Default().average_color(),
nux::LAYER_BLEND_MODE_OVERLAY,
true,
rop);
else
gPainter.PushTextureLayer(GfxContext, geo,
bg_blur_texture_,
texxform_blur_bg,
nux::color::White,
true,
rop);
#else
gPainter.PushCompositionLayer(GfxContext, geo,
bg_blur_texture_,
texxform_blur_bg,
nux::color::White,
WindowManager::Default().average_color(),
nux::LAYER_BLEND_MODE_OVERLAY,
true,
rop);
#endif
bgs++;
if (overlay_mode)
{
if (Settings::Instance().GetLowGfxMode())
{
rop.Blend = false;
auto const& bg_color = WindowManager::Default().average_color();
bg_darken_layer_.reset(new nux::ColorLayer(bg_color, false, rop));
}
nux::GetPainter().PushLayer(GfxContext, geo, bg_darken_layer_.get());
bgs++;
nux::Geometry refine_geo = geo;
int refine_x_pos = geo.x + (stored_dash_width_ - refine_gradient_midpoint);
refine_x_pos += unity::Settings::Instance().LauncherWidth(monitor_);
refine_geo.x = refine_x_pos;
refine_geo.width = bg_refine_tex_->GetWidth();
if (!Settings::Instance().GetLowGfxMode())
{
nux::GetPainter().PushLayer(GfxContext, refine_geo, bg_refine_layer_.get());
bgs++;
refine_geo.x += refine_geo.width;
refine_geo.width = geo.width;
nux::GetPainter().PushLayer(GfxContext, refine_geo, bg_refine_single_column_layer_.get());
bgs++;
}
}
}
if (!overlay_mode || !GfxContext.UsingGLSLCodePath())
gPainter.PushLayer(GfxContext, geo, bg_layer_.get());
if (overlay_mode && !Settings::Instance().GetLowGfxMode())
{
// apply the shine
nux::TexCoordXForm texxform;
texxform.SetTexCoordType(nux::TexCoordXForm::OFFSET_COORD);
texxform.SetWrap(nux::TEXWRAP_CLAMP, nux::TEXWRAP_CLAMP);
nux::ROPConfig rop;
//.........这里部分代码省略.........