本文整理汇总了C++中PlatformGraphicsContext类的典型用法代码示例。如果您正苦于以下问题:C++ PlatformGraphicsContext类的具体用法?C++ PlatformGraphicsContext怎么用?C++ PlatformGraphicsContext使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PlatformGraphicsContext类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: paintCurrentFrameInContext
void WebMediaPlayerClientImpl::paintCurrentFrameInContext(GraphicsContext* context, const IntRect& rect)
{
// Normally GraphicsContext operations do nothing when painting is disabled.
// Since we're accessing platformContext() directly we have to manually
// check.
if (m_webMediaPlayer && !context->paintingDisabled()) {
PlatformGraphicsContext* platformContext = context->platformContext();
WebCanvas* canvas = platformContext->canvas();
m_webMediaPlayer->paint(canvas, rect, platformContext->getNormalizedAlpha());
}
}
示例2: paintCurrentFrameInContext
void MediaPlayerPrivate::paintCurrentFrameInContext(GraphicsContext* context, const IntRect& rect)
{
if (!hasVideo() || context->paintingDisabled() || !m_webCorePlayer->visible())
return;
PlatformGraphicsContext* graphics = context->platformContext();
ASSERT(graphics);
BlackBerry::Platform::IntRect platformRect(rect.x(), rect.y(), rect.width(), rect.height());
IntRect clippedRect = m_webCorePlayer->mediaPlayerClient()->mediaPlayerWindowClipRect();
BlackBerry::Platform::IntRect platformWindowClipRect(clippedRect.x(), clippedRect.y(), clippedRect.width(), clippedRect.height());
m_platformPlayer->paint(graphics->canvas(), platformRect, platformWindowClipRect);
}
示例3: drawComplexText
void Font::drawComplexText(GraphicsContext* graphicsContext,
const TextRun& run,
const FloatPoint& point,
int from,
int to) const
{
PlatformGraphicsContext* context = graphicsContext->platformContext();
UniscribeHelperTextRun state(run, *this);
SkColor color = graphicsContext->platformContext()->effectiveFillColor();
unsigned char alpha = SkColorGetA(color);
// Skip 100% transparent text; no need to draw anything.
if (!alpha && graphicsContext->platformContext()->getStrokeStyle() == NoStroke)
return;
TransparencyAwareUniscribePainter painter(graphicsContext, this, run, from, to, point);
HDC hdc = painter.hdc();
if (windowsCanHandleTextDrawing(graphicsContext) && !hdc)
return;
// TODO(maruel): http://b/700464 SetTextColor doesn't support transparency.
// Enforce non-transparent color.
color = SkColorSetRGB(SkColorGetR(color), SkColorGetG(color), SkColorGetB(color));
if (hdc) {
SetTextColor(hdc, skia::SkColorToCOLORREF(color));
SetBkMode(hdc, TRANSPARENT);
}
// If there is a non-blur shadow and both the fill color and shadow color
// are opaque, handle without skia.
IntSize shadowSize;
int shadowBlur;
Color shadowColor;
if (graphicsContext->getShadow(shadowSize, shadowBlur, shadowColor) && windowsCanHandleDrawTextShadow(graphicsContext)) {
COLORREF textColor = skia::SkColorToCOLORREF(SkColorSetARGB(255, shadowColor.red(), shadowColor.green(), shadowColor.blue()));
COLORREF savedTextColor = GetTextColor(hdc);
SetTextColor(hdc, textColor);
state.draw(graphicsContext, hdc, static_cast<int>(point.x()) + shadowSize.width(),
static_cast<int>(point.y() - ascent()) + shadowSize.height(), from, to);
SetTextColor(hdc, savedTextColor);
}
// Uniscribe counts the coordinates from the upper left, while WebKit uses
// the baseline, so we have to subtract off the ascent.
state.draw(graphicsContext, hdc, static_cast<int>(point.x()),
static_cast<int>(point.y() - ascent()), from, to);
context->canvas()->endPlatformPaint();
}
示例4: syncPlatformContext
static void syncPlatformContext(GraphicsContext* gc)
{
// Stroke and fill sometimes reference each other, so always
// sync them both to make sure our state is consistent.
PlatformGraphicsContext* pgc = gc->platformContext();
Gradient* grad = gc->state().fillGradient.get();
Pattern* pat = gc->state().fillPattern.get();
if (grad)
pgc->setFillShader(grad->platformGradient());
else if (pat)
pgc->setFillShader(pat->platformPattern(AffineTransform()));
else
pgc->setFillColor(gc->state().fillColor);
grad = gc->state().strokeGradient.get();
pat = gc->state().strokePattern.get();
if (grad)
pgc->setStrokeShader(grad->platformGradient());
else if (pat)
pgc->setStrokeShader(pat->platformPattern(AffineTransform()));
else
pgc->setStrokeColor(gc->state().strokeColor);
}
示例5: paint
void WebMediaPlayerClientImpl::paint(GraphicsContext* context, const IntRect& rect)
{
// Normally GraphicsContext operations do nothing when painting is disabled.
// Since we're accessing platformContext() directly we have to manually
// check.
if (m_webMediaPlayer.get() && !context->paintingDisabled()) {
#if WEBKIT_USING_SKIA
PlatformGraphicsContext* platformContext = context->platformContext();
WebCanvas* canvas = platformContext->canvas();
canvas->saveLayerAlpha(0, platformContext->getNormalizedAlpha());
m_webMediaPlayer->paint(canvas, rect);
canvas->restore();
#elif WEBKIT_USING_CG
m_webMediaPlayer->paint(context->platformContext(), rect);
#else
notImplemented();
#endif
}
}
示例6: USE
void MediaPlayerPrivate::paint(GraphicsContext* context, const IntRect& rect)
{
#if USE(ACCELERATED_COMPOSITING)
// Only process paint calls coming via the accelerated compositing code
// path, where we get called with a null graphics context. See
// LayerCompositingThread::drawTextures(). Ignore calls from the regular
// rendering path.
if (!context)
m_platformPlayer->notifyOutputUpdate(BlackBerry::Platform::IntRect(rect.x(), rect.y(), rect.width(), rect.height()));
return;
#endif
if (!hasVideo() || context->paintingDisabled() || !m_webCorePlayer->visible())
return;
PlatformGraphicsContext* graphics = context->platformContext();
ASSERT(graphics);
BlackBerry::Platform::IntRect platformRect(rect.x(), rect.y(), rect.width(), rect.height());
IntRect clippedRect = frameView()->windowClipRect();
BlackBerry::Platform::IntRect platformWindowClipRect(clippedRect.x(), clippedRect.y(), clippedRect.width(), clippedRect.height());
m_platformPlayer->paint(graphics->canvas(), platformRect, platformWindowClipRect);
}
示例7: while
~GraphicsContextPlatformPrivate() {
if (mPgc && mPgc->deleteUs())
delete mPgc;
// we force restores so we don't leak any subobjects owned by our
// stack of State records.
while (mStateStack.count() > 0)
this->restore();
}