\r
void draw(ogl_device& ogl,\r
render_item&& item,\r
- const safe_ptr<device_buffer>& background,\r
+ device_buffer& background,\r
const std::shared_ptr<device_buffer>& local_key, \r
const std::shared_ptr<device_buffer>& layer_key)\r
{\r
\r
if(blend_modes_)\r
{\r
- background->bind(6);\r
+ background.bind(6);\r
\r
shader_->set("background", texture_id::background);\r
shader_->set("blend_mode", item.blend_mode);\r
\r
// Setup interlacing\r
\r
- if(item.mode == core::video_mode::progressive) \r
+ if(item.transform.get_field_mode() == core::field_mode::progressive) \r
ogl.disable(GL_POLYGON_STIPPLE); \r
else \r
{\r
ogl.enable(GL_POLYGON_STIPPLE);\r
\r
- if(item.mode == core::video_mode::upper)\r
+ if(item.transform.get_field_mode() == core::field_mode::upper)\r
ogl.stipple_pattern(upper_pattern);\r
- else if(item.mode == core::video_mode::lower)\r
+ else if(item.transform.get_field_mode() == core::field_mode::lower)\r
ogl.stipple_pattern(lower_pattern);\r
}\r
\r
// Setup drawing area\r
\r
- ogl.viewport(0, 0, background->width(), background->height());\r
+ ogl.viewport(0, 0, background.width(), background.height());\r
\r
auto m_p = item.transform.get_clip_translation();\r
auto m_s = item.transform.get_clip_scale();\r
\r
if(scissor)\r
{\r
- double w = static_cast<double>(background->width());\r
- double h = static_cast<double>(background->height());\r
+ double w = static_cast<double>(background.width());\r
+ double h = static_cast<double>(background.height());\r
\r
ogl.enable(GL_SCISSOR_TEST);\r
ogl.scissor(static_cast<size_t>(m_p[0]*w), static_cast<size_t>(m_p[1]*h), static_cast<size_t>(m_s[0]*w), static_cast<size_t>(m_s[1]*h));\r
\r
// Set render target\r
\r
- ogl.attach(*background);\r
+ ogl.attach(background);\r
\r
// Draw\r
\r
image_kernel::image_kernel() : impl_(new implementation()){}\r
void image_kernel::draw(ogl_device& ogl, \r
render_item&& item, \r
- const safe_ptr<device_buffer>& background,\r
+ device_buffer& background,\r
const std::shared_ptr<device_buffer>& local_key, \r
const std::shared_ptr<device_buffer>& layer_key)\r
{\r
\r
bool operator==(const render_item& lhs, const render_item& rhs)\r
{\r
- return lhs.textures == rhs.textures && lhs.transform == rhs.transform && lhs.tag == rhs.tag && lhs.mode == rhs.mode;\r
+ return lhs.textures == rhs.textures && lhs.transform == rhs.transform && lhs.tag == rhs.tag;\r
}\r
\r
}}
\ No newline at end of file