#include <bcsynchronous.h>
Inherits Thread.
Inherited by Playback3D.

Definition at line 132 of file bcsynchronous.h.
| BC_Synchronous::BC_Synchronous | ( | ) |
Definition at line 90 of file bcsynchronous.C.
References command_lock, current_window, done, BC_WindowBase::get_resources(), is_running, next_command, BC_Resources::set_synchronous(), and table_lock.

| BC_Synchronous::~BC_Synchronous | ( | ) | [virtual] |
Definition at line 102 of file bcsynchronous.C.
References commands, and ArrayList< TYPE >::remove_all_objects().

| void BC_Synchronous::quit | ( | ) |
Definition at line 121 of file bcsynchronous.C.
References ArrayList< TYPE >::append(), BC_SynchronousCommand::command, command_lock, commands, Mutex::lock(), new_command(), next_command, BC_SynchronousCommand::QUIT, Condition::unlock(), and Mutex::unlock().
Referenced by Save::handle_event(), Quit::handle_event(), SaveAs::run(), and Quit::run().

| void BC_Synchronous::create_objects | ( | ) |
| void BC_Synchronous::start | ( | ) |
Reimplemented from Thread.
Definition at line 116 of file bcsynchronous.C.
References run().
Referenced by MWindow::start().

| void BC_Synchronous::run | ( | ) | [virtual] |
Implements Thread.
Definition at line 150 of file bcsynchronous.C.
References command_lock, commands, done, handle_command_base(), is_running, Mutex::lock(), Condition::lock(), next_command, ArrayList< TYPE >::remove_number(), ArrayList< TYPE >::total, Mutex::unlock(), and ArrayList< TYPE >::values.
Referenced by start().

| BC_SynchronousCommand * BC_Synchronous::new_command | ( | ) | [virtual] |
Reimplemented in Playback3D.
Definition at line 107 of file bcsynchronous.C.
Referenced by delete_window(), quit(), and send_command().
| void BC_Synchronous::handle_command | ( | BC_SynchronousCommand * | command | ) | [virtual] |
Reimplemented in Playback3D.
Definition at line 201 of file bcsynchronous.C.
Referenced by handle_command_base().
| void BC_Synchronous::put_texture | ( | int | id, | |
| int | w, | |||
| int | h, | |||
| int | components | |||
| ) |
Definition at line 235 of file bcsynchronous.C.
References ArrayList< TYPE >::append(), current_window, BC_WindowBase::get_id(), TextureID::h, TextureID::id, Mutex::lock(), table_lock, texture_ids, ArrayList< TYPE >::total, Mutex::unlock(), ArrayList< TYPE >::values, TextureID::w, and TextureID::window_id.
Referenced by BC_Texture::create_texture().

| int BC_Synchronous::get_texture | ( | int | w, | |
| int | h, | |||
| int | components | |||
| ) |
Definition at line 273 of file bcsynchronous.C.
References TextureID::components, current_window, BC_WindowBase::get_id(), TextureID::h, TextureID::id, TextureID::in_use, Mutex::lock(), table_lock, texture_ids, ArrayList< TYPE >::total, Mutex::unlock(), ArrayList< TYPE >::values, TextureID::w, and TextureID::window_id.
Referenced by BC_Texture::create_texture().

| void BC_Synchronous::release_texture | ( | int | window_id, | |
| int | id | |||
| ) |
Definition at line 294 of file bcsynchronous.C.
References TextureID::id, TextureID::in_use, Mutex::lock(), table_lock, texture_ids, ArrayList< TYPE >::total, Mutex::unlock(), ArrayList< TYPE >::values, and TextureID::window_id.
Referenced by BC_Texture::clear_objects(), and BC_Texture::create_texture().

| unsigned int BC_Synchronous::get_shader | ( | char * | source, | |
| int * | got_it | |||
| ) |
Definition at line 314 of file bcsynchronous.C.
References current_window, BC_WindowBase::get_id(), ShaderID::handle, Mutex::lock(), shader_ids, ShaderID::source, table_lock, ArrayList< TYPE >::total, Mutex::unlock(), ArrayList< TYPE >::values, and ShaderID::window_id.
Referenced by BC_WindowBase::get_shader(), and VFrame::make_shader().

| void BC_Synchronous::put_shader | ( | unsigned int | handle, | |
| char * | source | |||
| ) |
Definition at line 333 of file bcsynchronous.C.
References ArrayList< TYPE >::append(), current_window, BC_WindowBase::get_id(), Mutex::lock(), shader_ids, table_lock, and Mutex::unlock().
Referenced by VFrame::make_shader(), and BC_WindowBase::put_shader().

| void BC_Synchronous::dump_shader | ( | unsigned int | handle | ) |
Definition at line 341 of file bcsynchronous.C.
References ShaderID::handle, Mutex::lock(), shader_ids, ShaderID::source, table_lock, ArrayList< TYPE >::total, Mutex::unlock(), and ArrayList< TYPE >::values.
Referenced by VFrame::dump_shader().

| void BC_Synchronous::delete_window | ( | BC_WindowBase * | window | ) |
Definition at line 360 of file bcsynchronous.C.
References BC_SynchronousCommand::command, BC_SynchronousCommand::DELETE_WINDOW, BC_SynchronousCommand::display, BC_WindowBase::get_display(), BC_WindowBase::get_id(), new_command(), send_garbage(), BC_WindowBase::win, BC_SynchronousCommand::win, and BC_SynchronousCommand::window_id.
Referenced by BC_WindowBase::~BC_WindowBase().

| int BC_Synchronous::send_command | ( | BC_SynchronousCommand * | command | ) |
Definition at line 132 of file bcsynchronous.C.
References ArrayList< TYPE >::append(), BC_SynchronousCommand::command_done, command_lock, commands, BC_SynchronousCommand::copy_from(), Condition::lock(), Mutex::lock(), new_command(), next_command, BC_SynchronousCommand::result, Condition::unlock(), and Mutex::unlock().
Referenced by Playback3D::clear_input(), Playback3D::clear_output(), Playback3D::copy_from(), Playback3D::do_camera(), Playback3D::do_fade(), Playback3D::do_mask(), Playback3D::overlay(), Playback3D::run_plugin(), and Playback3D::write_buffer().

| void BC_Synchronous::send_garbage | ( | BC_SynchronousCommand * | command | ) |
Definition at line 548 of file bcsynchronous.C.
References ArrayList< TYPE >::append(), garbage, Mutex::lock(), next_command, table_lock, Condition::unlock(), and Mutex::unlock().
Referenced by delete_window().

| BC_WindowBase * BC_Synchronous::get_window | ( | ) |
| void BC_Synchronous::handle_command_base | ( | BC_SynchronousCommand * | command | ) | [private] |
Definition at line 175 of file bcsynchronous.C.
References BC_SynchronousCommand::command, BC_SynchronousCommand::command_done, done, handle_command(), handle_garbage(), BC_SynchronousCommand::QUIT, and Condition::unlock().
Referenced by run().

| void BC_Synchronous::handle_garbage | ( | ) | [private] |
Definition at line 205 of file bcsynchronous.C.
References BC_SynchronousCommand::command, BC_SynchronousCommand::DELETE_PIXMAP, delete_pixmap_sync(), BC_SynchronousCommand::DELETE_WINDOW, delete_window_sync(), garbage, Mutex::lock(), ArrayList< TYPE >::remove_number(), table_lock, ArrayList< TYPE >::total, Mutex::unlock(), and ArrayList< TYPE >::values.
Referenced by handle_command_base().

| void BC_Synchronous::delete_window_sync | ( | BC_SynchronousCommand * | command | ) | [private] |
Definition at line 374 of file bcsynchronous.C.
References debug, BC_SynchronousCommand::display, ShaderID::handle, TextureID::id, Mutex::lock(), pbuffer_ids, ArrayList< TYPE >::remove_object_number(), shader_ids, table_lock, texture_ids, ArrayList< TYPE >::total, Mutex::unlock(), ArrayList< TYPE >::values, BC_SynchronousCommand::win, ShaderID::window_id, TextureID::window_id, and BC_SynchronousCommand::window_id.
Referenced by handle_garbage().

| void BC_Synchronous::delete_pixmap_sync | ( | BC_SynchronousCommand * | command | ) | [private] |
Definition at line 533 of file bcsynchronous.C.
References BC_SynchronousCommand::display, and BC_SynchronousCommand::win.
Referenced by handle_garbage().
friend class BC_WindowBase [friend] |
Definition at line 138 of file bcsynchronous.h.
friend class VFrame [friend] |
Definition at line 139 of file bcsynchronous.h.
friend class BC_PBuffer [friend] |
Definition at line 140 of file bcsynchronous.h.
friend class BC_Pixmap [friend] |
Definition at line 141 of file bcsynchronous.h.
friend class BC_Texture [friend] |
Definition at line 142 of file bcsynchronous.h.
Condition* BC_Synchronous::next_command [private] |
Definition at line 234 of file bcsynchronous.h.
Referenced by BC_Synchronous(), quit(), run(), send_command(), and send_garbage().
Mutex* BC_Synchronous::command_lock [private] |
Definition at line 235 of file bcsynchronous.h.
Referenced by BC_Synchronous(), quit(), run(), and send_command().
Mutex* BC_Synchronous::table_lock [private] |
Definition at line 239 of file bcsynchronous.h.
Referenced by BC_Synchronous(), delete_window_sync(), dump_shader(), get_shader(), get_texture(), handle_garbage(), put_shader(), put_texture(), release_texture(), and send_garbage().
int BC_Synchronous::done [private] |
Definition at line 242 of file bcsynchronous.h.
Referenced by BC_Synchronous(), handle_command_base(), and run().
ArrayList<BC_SynchronousCommand*> BC_Synchronous::commands [private] |
Definition at line 244 of file bcsynchronous.h.
Referenced by quit(), run(), send_command(), and ~BC_Synchronous().
int BC_Synchronous::is_running [private] |
BC_WindowBase* BC_Synchronous::current_window [private] |
Definition at line 248 of file bcsynchronous.h.
Referenced by BC_Synchronous(), VFrame::create_pbuffer(), BC_Texture::create_texture(), BC_WindowBase::enable_opengl(), BC_Pixmap::enable_opengl(), BC_PBuffer::enable_opengl(), get_shader(), get_texture(), get_window(), BC_PBuffer::new_pbuffer(), put_shader(), and put_texture().
ArrayList<ShaderID*> BC_Synchronous::shader_ids [private] |
Definition at line 250 of file bcsynchronous.h.
Referenced by delete_window_sync(), dump_shader(), get_shader(), and put_shader().
ArrayList<TextureID*> BC_Synchronous::texture_ids [private] |
Definition at line 251 of file bcsynchronous.h.
Referenced by delete_window_sync(), get_texture(), put_texture(), and release_texture().
ArrayList<PBufferID*> BC_Synchronous::pbuffer_ids [private] |
ArrayList<BC_SynchronousCommand*> BC_Synchronous::garbage [private] |
int BC_Synchronous::is_pbuffer [private] |
Definition at line 258 of file bcsynchronous.h.
Referenced by BC_WindowBase::enable_opengl(), and BC_PBuffer::enable_opengl().
1.5.5