template<typename T>\r
struct buffer_pool\r
{\r
- tbb::atomic<int> total_count;\r
tbb::atomic<int> usage_count;\r
tbb::atomic<int> flush_count;\r
tbb::concurrent_bounded_queue<std::shared_ptr<T>> items;\r
\r
buffer_pool()\r
{\r
- total_count = 0;\r
usage_count = 0;\r
flush_count = 0;\r
}\r
GLint attached_texture_;\r
GLint active_shader_;\r
std::array<GLint, 16> binded_textures_;\r
+ std::array<GLint, 4> blend_func_;\r
\r
std::unique_ptr<sf::Context> context_;\r
\r
\r
void begin_read(host_buffer& dest, device_buffer& source);\r
void begin_read(device_buffer& dest, host_buffer& source);\r
+\r
+ void blend_func(int c1, int c2, int a1, int a2);\r
+ void blend_func(int c1, int c2);\r
\r
void use(shader& shader);\r
\r
\r
safe_ptr<device_buffer> create_device_buffer(size_t width, size_t height, size_t stride);\r
safe_ptr<host_buffer> create_host_buffer(size_t size, host_buffer::usage_t usage);\r
+ \r
void yield();\r
boost::unique_future<void> gc();\r
\r
static std::wstring get_version();\r
+\r
+private:\r
+ safe_ptr<device_buffer> allocate_device_buffer(size_t width, size_t height, size_t stride);\r
+ safe_ptr<host_buffer> allocate_host_buffer(size_t size, host_buffer::usage_t usage);\r
};\r
\r
}}
\ No newline at end of file