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

View File

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

View File

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

View File

@ -37,6 +37,7 @@ extern VALUE globalRectClass;
extern VALUE globalDrawableModule;
extern VALUE globalShaderClass;
extern VALUE globalViewClass;
extern VALUE globalNonCopyableModule;
static VALUE View_Free( sf::View *anObject )
{
@ -323,7 +324,8 @@ void Init_RenderTarget( void )
* classes that inherits from sf::RenderTarget(sf::RenderWindow, sf::RenderImage) and you will only use it as the
* 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 );
rb_include_module( globalRenderTargetInstanceClass, globalRenderTargetModule );

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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