本文整理汇总了C++中SurfacePtr::get_region方法的典型用法代码示例。如果您正苦于以下问题:C++ SurfacePtr::get_region方法的具体用法?C++ SurfacePtr::get_region怎么用?C++ SurfacePtr::get_region使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SurfacePtr
的用法示例。
在下文中一共展示了SurfacePtr::get_region方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: new
void
Canvas::draw_surface(const SurfacePtr& surface,
const Vector& position, float angle, const Color& color, const Blend& blend,
int layer)
{
if (!surface) return;
const auto& cliprect = m_context.get_cliprect();
// discard clipped surface
if (position.x > cliprect.get_right() ||
position.y > cliprect.get_bottom() ||
position.x + static_cast<float>(surface->get_width()) < cliprect.get_left() ||
position.y + static_cast<float>(surface->get_height()) < cliprect.get_top())
return;
auto request = new(m_obst) TextureRequest();
request->type = TEXTURE;
request->layer = layer;
request->flip = m_context.transform().flip ^ surface->get_flip();
request->alpha = m_context.transform().alpha;
request->blend = blend;
request->srcrects.emplace_back(Rectf(surface->get_region()));
request->dstrects.emplace_back(Rectf(apply_translate(position), Size(surface->get_width(), surface->get_height())));
request->angles.emplace_back(angle);
request->texture = surface->get_texture().get();
request->displacement_texture = surface->get_displacement_texture().get();
request->color = color;
m_requests.push_back(request);
}