Made the classes that is non-copyable in the C++ library also non-copyable in rbSFML.

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1738 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
groogy 2010-12-03 14:12:16 +00:00
parent cd04d29584
commit 30865b6ef9
10 changed files with 27 additions and 1 deletions

View File

@ -26,6 +26,9 @@
VALUE globalSoundRecorderClass; VALUE globalSoundRecorderClass;
/* External classes */
extern VALUE globalNonCopyableModule;
class rbSoundRecorder : public sf::SoundRecorder class rbSoundRecorder : public sf::SoundRecorder
{ {
public: public:
@ -244,6 +247,7 @@ void Init_SoundRecorder( void )
* end * end
*/ */
globalSoundRecorderClass = rb_define_class_under( sfml, "SoundRecorder", rb_cObject ); globalSoundRecorderClass = rb_define_class_under( sfml, "SoundRecorder", rb_cObject );
rb_include_module( globalSoundRecorderClass, globalNonCopyableModule );
// Class methods // Class methods
rb_define_singleton_method( globalSoundRecorderClass, "new", SoundRecorder_New, -1 ); rb_define_singleton_method( globalSoundRecorderClass, "new", SoundRecorder_New, -1 );

View File

@ -28,6 +28,7 @@ VALUE globalSoundStreamClass;
/* External classes */ /* External classes */
extern VALUE globalSoundSourceClass; extern VALUE globalSoundSourceClass;
extern VALUE globalNonCopyableModule;
class rbSoundStream : public sf::SoundStream class rbSoundStream : public sf::SoundStream
{ {
@ -357,6 +358,7 @@ void Init_SoundStream( void )
* stream.play * stream.play
*/ */
globalSoundStreamClass = rb_define_class_under( sfml, "SoundStream", globalSoundSourceClass ); globalSoundStreamClass = rb_define_class_under( sfml, "SoundStream", globalSoundSourceClass );
rb_include_module( globalSoundStreamClass, globalNonCopyableModule );
// Class methods // Class methods
rb_define_singleton_method( globalSoundStreamClass, "new", SoundStream_New, -1 ); rb_define_singleton_method( globalSoundStreamClass, "new", SoundStream_New, -1 );

View File

@ -27,6 +27,7 @@ VALUE globalSFMLNamespace;
/* External classes */ /* External classes */
VALUE globalVector2Class; VALUE globalVector2Class;
VALUE globalVector3Class; VALUE globalVector3Class;
VALUE globalNonCopyableModule;
static bool CheckDependencies( void ) static bool CheckDependencies( void )
{ {
@ -48,5 +49,6 @@ void Init_audio( void )
} }
globalVector2Class = RetrieveSFMLClass( "Vector2" ); globalVector2Class = RetrieveSFMLClass( "Vector2" );
globalVector3Class = RetrieveSFMLClass( "Vector3" ); globalVector3Class = RetrieveSFMLClass( "Vector3" );
globalNonCopyableModule = RetrieveSFMLClass( "NonCopyable" );
rb_define_const(globalSFMLNamespace, "AudioLoaded", Qtrue); rb_define_const(globalSFMLNamespace, "AudioLoaded", Qtrue);
} }

View File

@ -37,6 +37,7 @@ extern VALUE globalRectClass;
extern VALUE globalDrawableModule; extern VALUE globalDrawableModule;
extern VALUE globalShaderClass; extern VALUE globalShaderClass;
extern VALUE globalViewClass; extern VALUE globalViewClass;
extern VALUE globalNonCopyableModule;
static VALUE View_Free( sf::View *anObject ) static VALUE View_Free( sf::View *anObject )
{ {
@ -324,6 +325,7 @@ void Init_RenderTarget( void )
* first argument in the SFML::Drawable#render method. * first argument in the SFML::Drawable#render method.
*/ */
globalRenderTargetModule = rb_define_module_under( sfml, "RenderTarget" ); globalRenderTargetModule = rb_define_module_under( sfml, "RenderTarget" );
rb_include_module( globalRenderTargetModule, globalNonCopyableModule );
globalRenderTargetInstanceClass = rb_define_class_under( globalRenderTargetModule, "Instance", rb_cObject ); globalRenderTargetInstanceClass = rb_define_class_under( globalRenderTargetModule, "Instance", rb_cObject );
rb_include_module( globalRenderTargetInstanceClass, globalRenderTargetModule ); rb_include_module( globalRenderTargetInstanceClass, globalRenderTargetModule );

View File

@ -32,6 +32,7 @@ VALUE globalRendererClass;
extern VALUE globalColorClass; extern VALUE globalColorClass;
extern VALUE globalImageClass; extern VALUE globalImageClass;
extern VALUE globalShaderClass; extern VALUE globalShaderClass;
extern VALUE globalNonCopyableModule;
/* call-seq: /* call-seq:
* renderer.saveGLStates() * renderer.saveGLStates()
@ -336,6 +337,7 @@ void Init_Renderer( void )
* SFML::Drawable class that uses raw geometry in its Render function. * SFML::Drawable class that uses raw geometry in its Render function.
*/ */
globalRendererClass = rb_define_class_under( sfml, "Renderer", rb_cObject ); globalRendererClass = rb_define_class_under( sfml, "Renderer", rb_cObject );
rb_include_module( globalRendererClass, globalNonCopyableModule );
DefinePrimitiveTypesEnum(); DefinePrimitiveTypesEnum();
// Instance methods // Instance methods

View File

@ -46,6 +46,7 @@ VALUE globalBlendNamespace;
VALUE globalVector2Class; VALUE globalVector2Class;
VALUE globalVector3Class; VALUE globalVector3Class;
VALUE globalWindowClass; VALUE globalWindowClass;
VALUE globalNonCopyableModule;
static bool CheckDependencies( void ) static bool CheckDependencies( void )
{ {
@ -78,6 +79,7 @@ void Init_graphics( void )
globalVector2Class = RetrieveSFMLClass( "Vector2" ); globalVector2Class = RetrieveSFMLClass( "Vector2" );
globalVector3Class = RetrieveSFMLClass( "Vector3" ); globalVector3Class = RetrieveSFMLClass( "Vector3" );
globalWindowClass = RetrieveSFMLClass( "Window" ); globalWindowClass = RetrieveSFMLClass( "Window" );
globalNonCopyableModule = RetrieveSFMLClass( "NonCopyable" );
rb_define_const(globalSFMLNamespace, "GraphicsLoaded", Qtrue); rb_define_const(globalSFMLNamespace, "GraphicsLoaded", Qtrue);
CreateBlendEnum(); CreateBlendEnum();

View File

@ -26,6 +26,9 @@
VALUE globalContextClass; VALUE globalContextClass;
/* External classes */
extern VALUE globalNonCopyableModule;
/* Free a heap allocated object /* Free a heap allocated object
* Not accessible trough ruby directly! * Not accessible trough ruby directly!
*/ */
@ -109,6 +112,7 @@ void Init_Context( void )
* the attached resources. * the attached resources.
*/ */
globalContextClass = rb_define_class_under( sfml, "Context", rb_cObject ); globalContextClass = rb_define_class_under( sfml, "Context", rb_cObject );
rb_include_module( globalContextClass, globalNonCopyableModule );
// Class methods // Class methods
rb_define_singleton_method( globalContextClass, "new", Context_New, 0 ); rb_define_singleton_method( globalContextClass, "new", Context_New, 0 );

View File

@ -26,6 +26,9 @@
VALUE globalInputClass; VALUE globalInputClass;
/* External classes */
extern VALUE globalNonCopyableModule;
/* Free a heap allocated object /* Free a heap allocated object
* Not accessible trough ruby directly! * Not accessible trough ruby directly!
*/ */
@ -178,6 +181,7 @@ void Init_Input( void )
* entity.move( 0, offset ) if input.keyDown?( SFML::Key::Down ) * entity.move( 0, offset ) if input.keyDown?( SFML::Key::Down )
*/ */
globalInputClass = rb_define_class_under( sfml, "Input", rb_cObject ); globalInputClass = rb_define_class_under( sfml, "Input", rb_cObject );
rb_include_module( globalInputClass, globalNonCopyableModule );
// Class methods // Class methods
rb_define_singleton_method( globalInputClass, "new", Input_New, -1 ); rb_define_singleton_method( globalInputClass, "new", Input_New, -1 );

View File

@ -34,6 +34,7 @@ extern VALUE globalContextSettingsClass;
extern VALUE globalEventClass; extern VALUE globalEventClass;
extern VALUE globalInputClass; extern VALUE globalInputClass;
extern VALUE globalVector2Class; extern VALUE globalVector2Class;
extern VALUE globalNonCopyableModule;
/* Free a heap allocated object /* Free a heap allocated object
* Not accessible trough ruby directly! * Not accessible trough ruby directly!
@ -676,6 +677,7 @@ void Init_Window( void )
* end * end
*/ */
globalWindowClass = rb_define_class_under( sfml, "Window", rb_cObject ); globalWindowClass = rb_define_class_under( sfml, "Window", rb_cObject );
rb_include_module( globalWindowClass, globalNonCopyableModule );
// Class methods // Class methods
rb_define_singleton_method( globalWindowClass, "new", Window_New , -1 ); rb_define_singleton_method( globalWindowClass, "new", Window_New , -1 );

View File

@ -41,6 +41,7 @@ VALUE globalStyleNamespace;
/* External classes */ /* External classes */
VALUE globalVector2Class; VALUE globalVector2Class;
VALUE globalNonCopyableModule;
static const char * keyNamesMisc[] = static const char * keyNamesMisc[] =
{ {
@ -162,6 +163,7 @@ void Init_window( void )
} }
globalVector2Class = RetrieveSFMLClass( "Vector2" ); globalVector2Class = RetrieveSFMLClass( "Vector2" );
globalNonCopyableModule = RetrieveSFMLClass( "NonCopyable" );
rb_define_const( globalSFMLNamespace, "WindowLoaded", Qtrue ); rb_define_const( globalSFMLNamespace, "WindowLoaded", Qtrue );