diff options
Diffstat (limited to 'community-testing/smc/smc-for-cegui-v0-7.diff')
-rw-r--r-- | community-testing/smc/smc-for-cegui-v0-7.diff | 437 |
1 files changed, 437 insertions, 0 deletions
diff --git a/community-testing/smc/smc-for-cegui-v0-7.diff b/community-testing/smc/smc-for-cegui-v0-7.diff new file mode 100644 index 000000000..a99cbce6c --- /dev/null +++ b/community-testing/smc/smc-for-cegui-v0-7.diff @@ -0,0 +1,437 @@ +diff -ur smc-1.9/configure.ac smc-1.9-b/configure.ac +--- smc-1.9/configure.ac 2009-08-17 15:59:00.000000000 +0200 ++++ smc-1.9-b/configure.ac 2011-01-19 00:43:37.809884881 +0100 +@@ -53,7 +53,7 @@ + AC_MSG_ERROR([SDL_ttf library not found])) + + # Check for the CEGUI library +-PKG_CHECK_MODULES(CEGUI, CEGUI-OPENGL >= 0.5.0) ++PKG_CHECK_MODULES(CEGUI, CEGUI-OPENGL >= 0.7.0) + CPPFLAGS="$CPPFLAGS $CEGUI_CFLAGS" + LIBS="$LIBS $CEGUI_LIBS" + +diff -ur smc-1.9/src/core/editor.cpp smc-1.9-b/src/core/editor.cpp +--- smc-1.9/src/core/editor.cpp 2009-08-13 17:11:42.000000000 +0200 ++++ smc-1.9-b/src/core/editor.cpp 2011-01-19 00:44:46.734328121 +0100 +@@ -118,16 +118,10 @@ + return tmp;
+ }
+
+-void cEditor_Item_Object :: draw( const CEGUI::Vector3 &position, float alpha, const CEGUI::Rect &clipper ) const
++void cEditor_Item_Object :: draw( CEGUI::GeometryBuffer &buffer, const CEGUI::Rect &targetRect, float alpha, const CEGUI::Rect *clipper ) const
+ {
+ // draw text
+- list_text->draw( position, alpha, clipper );
+-}
+-
+-void cEditor_Item_Object :: draw( CEGUI::RenderCache &cache, const CEGUI::Rect &targetRect, float zBase, float alpha, const CEGUI::Rect *clipper ) const
+-{
+- // draw text
+- list_text->draw( cache, targetRect, zBase, alpha, clipper );
++ list_text->draw( buffer, targetRect, alpha, clipper );
+ }
+
+ void cEditor_Item_Object :: Draw_Image( void )
+@@ -533,12 +527,12 @@ + if( editor_window->getXPosition().asRelative( 1 ) >= 0 )
+ {
+ // Listbox dimension
+- float list_posy = listbox_items->getUnclippedPixelRect().d_top * global_downscaley;
+- float list_height = listbox_items->getUnclippedPixelRect().getHeight() * global_downscaley;
++ float list_posy = listbox_items->getUnclippedOuterRect().d_top * global_downscaley;
++ float list_height = listbox_items->getUnclippedOuterRect().getHeight() * global_downscaley;
+ // Vertical ScrollBar Position
+ float scroll_pos = listbox_items->getVertScrollbar()->getScrollPosition() * global_downscaley;
+ // font height
+- float font_height = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" )->getFontHeight() * global_downscaley;
++ float font_height = CEGUI::FontManager::getSingleton().get( "bluebold_medium" ).getFontHeight() * global_downscaley;
+
+ // draw items
+ for( unsigned int i = 0; i < listbox_items->getItemCount(); i++ )
+diff -ur smc-1.9/src/core/editor.h smc-1.9-b/src/core/editor.h +--- smc-1.9/src/core/editor.h 2009-02-18 05:21:30.000000000 +0100 ++++ smc-1.9-b/src/core/editor.h 2011-01-19 00:43:37.809884881 +0100 +@@ -62,8 +62,7 @@ + */
+ virtual CEGUI::Size getPixelSize( void ) const;
+ // draw
+- void draw( const CEGUI::Vector3 &position, float alpha, const CEGUI::Rect &clipper ) const;
+- void draw( CEGUI::RenderCache &cache, const CEGUI::Rect &targetRect, float zBase, float alpha, const CEGUI::Rect *clipper) const;
++ void draw(CEGUI::GeometryBuffer& buffer, const CEGUI::Rect& targetRect, float alpha, const CEGUI::Rect* clipper) const;
+ // draw image
+ void Draw_Image( void );
+
+diff -ur smc-1.9/src/core/game_core.cpp smc-1.9-b/src/core/game_core.cpp +--- smc-1.9/src/core/game_core.cpp 2009-08-16 18:44:42.000000000 +0200 ++++ smc-1.9-b/src/core/game_core.cpp 2011-01-19 00:59:02.668958883 +0100 +@@ -265,7 +265,7 @@ +
+
+ // align text
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ // fixme : Can't handle multiple lines of text
+ float text_width = font->getTextExtent( text ) * global_downscalex;
+
+@@ -1182,7 +1182,7 @@ + text_default->setText( gui_text );
+
+ // align text
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ float text_width = font->getTextExtent( gui_text ) * global_downscalex;
+
+ text_default->setWidth( CEGUI::UDim( 0, ( text_width + 15 ) * global_upscalex ) );
+@@ -1190,7 +1190,7 @@ + text_default->moveToFront();
+
+ // set window height
+- text_default->setHeight( CEGUI::UDim( 0, font->getFontHeight() * font->getFormattedLineCount( gui_text, text_default->getUnclippedInnerRect(), CEGUI::LeftAligned ) + ( 12 * global_upscaley ) ) );
++ text_default->setHeight( CEGUI::UDim( 0, font->getFontHeight() + ( 12 * global_upscaley ) ) );
+
+ while( draw )
+ {
+diff -ur smc-1.9/src/core/main.cpp smc-1.9-b/src/core/main.cpp +--- smc-1.9/src/core/main.cpp 2009-05-12 10:36:04.000000000 +0200 ++++ smc-1.9-b/src/core/main.cpp 2011-01-19 00:43:37.809884881 +0100 +@@ -444,13 +444,15 @@ + + if( pGuiSystem ) + { +- delete pGuiSystem; ++ CEGUI::ResourceProvider* rp = pGuiSystem->getResourceProvider(); ++ pGuiSystem->destroy(); + pGuiSystem = NULL; ++ delete rp; + } + + if( pGuiRenderer ) + { +- delete pGuiRenderer; ++ pGuiRenderer->destroy( *pGuiRenderer ); + pGuiRenderer = NULL; + } + +@@ -507,7 +509,7 @@ + } + case SDL_VIDEORESIZE: + { +- pGuiRenderer->setDisplaySize( CEGUI::Size( static_cast<float>(ev->resize.w), static_cast<float>(ev->resize.h) ) ); ++ pGuiSystem->notifyDisplaySizeChanged( CEGUI::Size( static_cast<float>(ev->resize.w), static_cast<float>(ev->resize.h) ) ); + break; + } + case SDL_KEYDOWN: +diff -ur smc-1.9/src/gui/hud.cpp smc-1.9-b/src/gui/hud.cpp +--- smc-1.9/src/gui/hud.cpp 2009-05-01 15:00:16.000000000 +0200 ++++ smc-1.9-b/src/gui/hud.cpp 2011-01-19 00:43:37.816550365 +0100 +@@ -946,7 +946,7 @@ + m_text_debug_text->setVisible( 1 );
+
+ // update position
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ float text_width = font->getTextExtent( gui_text ) * global_downscalex;
+
+ if( text_width > 800.0f )
+diff -ur smc-1.9/src/input/mouse.cpp smc-1.9-b/src/input/mouse.cpp +--- smc-1.9/src/input/mouse.cpp 2009-04-24 21:16:58.000000000 +0200 ++++ smc-1.9-b/src/input/mouse.cpp 2011-01-19 00:43:37.813217623 +0100 +@@ -432,17 +432,12 @@ +
+ void cMouseCursor :: Render( void ) const
+ {
+- if( !m_active )
+- {
++ CEGUI::MouseCursor *mouse = CEGUI::MouseCursor::getSingletonPtr();
++
++ if ( m_active == mouse->isVisible() )
+ return;
+- }
+
+- // Render CEGUI Mouse
+- pGuiRenderer->setQueueingEnabled( 0 );
+- CEGUI::MouseCursor *mouse = CEGUI::MouseCursor::getSingletonPtr();
+- mouse->setVisible( 1 );
+- mouse->draw();
+- mouse->setVisible( 0 );
++ mouse->setVisible( m_active );
+ }
+
+ void cMouseCursor :: Update_Position( void )
+diff -ur smc-1.9/src/level/level_settings.cpp smc-1.9-b/src/level/level_settings.cpp +--- smc-1.9/src/level/level_settings.cpp 2009-08-07 03:04:28.000000000 +0200 ++++ smc-1.9-b/src/level/level_settings.cpp 2011-01-19 01:06:59.064259070 +0100 +@@ -163,8 +163,8 @@ + editbox->setText( int_to_string( bg_color_2.blue ).c_str() );
+ // preview window
+ CEGUI::Window *window_background_preview = CEGUI::WindowManager::getSingleton().getWindow( "window_background_preview" );
+- background_preview->Set_Pos_X( window_background_preview->getUnclippedPixelRect().d_left * global_downscalex, 1 );
+- background_preview->Set_Pos_Y( window_background_preview->getUnclippedPixelRect().d_top * global_downscaley, 1 );
++ background_preview->Set_Pos_X( window_background_preview->getUnclippedOuterRect().d_left * global_downscalex, 1 );
++ background_preview->Set_Pos_Y( window_background_preview->getUnclippedOuterRect().d_top * global_downscaley, 1 );
+
+ Update_BG_Colors( CEGUI::EventArgs() );
+
+@@ -555,8 +555,8 @@ +
+ // set default rect
+ CEGUI::Window *window_background_preview = CEGUI::WindowManager::getSingleton().getWindow( "window_background_preview" );
+- background_preview->m_rect.m_w = window_background_preview->getUnclippedPixelRect().getWidth() * global_downscalex;
+- background_preview->m_rect.m_h = window_background_preview->getUnclippedPixelRect().getHeight() * global_downscaley;
++ background_preview->m_rect.m_w = window_background_preview->getUnclippedOuterRect().getWidth() * global_downscalex;
++ background_preview->m_rect.m_h = window_background_preview->getUnclippedOuterRect().getHeight() * global_downscaley;
+
+ if( !File_Exists( filename ) )
+ {
+diff -ur smc-1.9/src/objects/sprite.cpp smc-1.9-b/src/objects/sprite.cpp +--- smc-1.9/src/objects/sprite.cpp 2009-04-18 09:55:06.000000000 +0200 ++++ smc-1.9-b/src/objects/sprite.cpp 2011-01-19 00:43:37.813217623 +0100 +@@ -1663,7 +1663,7 @@ + window_name->setText( name );
+ window_name->setTooltipText( tooltip );
+ // get text width
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ float text_width = 12 + font->getTextExtent( name ) * global_downscalex;
+ // all names should have the same width
+ if( text_width > m_editor_window_name_width )
+diff -ur smc-1.9/src/video/video.cpp smc-1.9-b/src/video/video.cpp +--- smc-1.9/src/video/video.cpp 2009-07-04 11:46:56.000000000 +0200 ++++ smc-1.9-b/src/video/video.cpp 2011-01-19 01:22:45.338524592 +0100 +@@ -103,15 +103,15 @@ +
+ /* *** *** *** *** *** *** *** CEGUI renderer fake class *** *** *** *** *** *** *** *** *** *** */
+
+-cFake_Renderer :: cFake_Renderer( void )
+-{
+- d_identifierString = "Fake Renderer";
+-}
++//cFake_Renderer :: cFake_Renderer( void )
++//{
++// d_identifierString = "Fake Renderer";
++//}
+
+-cFake_Renderer :: ~cFake_Renderer( void )
+-{
++//cFake_Renderer :: ~cFake_Renderer( void )
++//{
+
+-}
++//}
+
+ /* *** *** *** *** *** *** *** Video class *** *** *** *** *** *** *** *** *** *** */
+
+@@ -158,7 +158,7 @@ + std::string log_dump_dir = "/dev/null";
+ #endif
+ // create fake system and renderer
+- pGuiSystem = new CEGUI::System( new cFake_Renderer(), rp, NULL, NULL, "", log_dump_dir );
++ pGuiSystem = &CEGUI::System::create( *new cFake_Renderer(), rp, NULL, NULL, NULL, "", log_dump_dir );
+ }
+
+ void cVideo :: Delete_CEGUI_Fake( void ) const
+@@ -166,7 +166,7 @@ + CEGUI::ResourceProvider *rp = pGuiSystem->getResourceProvider();
+ CEGUI::Renderer *renderer = pGuiSystem->getRenderer();
+
+- delete pGuiSystem;
++ pGuiSystem->destroy();
+ pGuiSystem = NULL;
+ delete renderer;
+ delete rp;
+@@ -177,7 +177,7 @@ + // create renderer
+ try
+ {
+- pGuiRenderer = new CEGUI::OpenGLRenderer( 0, screen->w, screen->h );
++ pGuiRenderer = &CEGUI::OpenGLRenderer::create( CEGUI::Size( screen->w, screen->h ) );
+ }
+ // catch CEGUI Exceptions
+ catch( CEGUI::Exception &ex )
+@@ -186,10 +186,10 @@ + exit( EXIT_FAILURE );
+ }
+
+- /* create Resource Provider
+- * no need to destroy it later since it is handled by the CEGUI renderer
+- */
+- CEGUI::DefaultResourceProvider *rp = static_cast<CEGUI::DefaultResourceProvider *>(pGuiRenderer->createResourceProvider());
++ pGuiRenderer->enableExtraStateSettings(true);
++
++ // create Resource Provider
++ CEGUI::DefaultResourceProvider *rp = new CEGUI::DefaultResourceProvider;
+
+ // set Resource Provider directories
+ rp->setResourceGroupDirectory( "schemes", DATA_DIR "/" GUI_SCHEME_DIR "/" );
+@@ -215,7 +215,7 @@ + // create system
+ try
+ {
+- pGuiSystem = new CEGUI::System( pGuiRenderer, rp, NULL, NULL, "", pResource_Manager->user_data_dir + "cegui.log" );
++ pGuiSystem = &CEGUI::System::create( *pGuiRenderer, rp, NULL, NULL, NULL, "", pResource_Manager->user_data_dir + "cegui.log" );
+ }
+ // catch CEGUI Exceptions
+ catch( CEGUI::Exception &ex )
+@@ -242,7 +242,7 @@ + // load the scheme file, which auto-loads the imageset
+ try
+ {
+- CEGUI::SchemeManager::getSingleton().loadScheme( "TaharezLook.scheme" );
++ CEGUI::SchemeManager::getSingleton().create( "TaharezLook.scheme" );
+ }
+ // catch CEGUI Exceptions
+ catch( CEGUI::Exception &ex )
+@@ -254,9 +254,7 @@ + // default mouse cursor
+ pGuiSystem->setDefaultMouseCursor( "TaharezLook", "MouseArrow" );
+ // force new mouse image
+- CEGUI::MouseCursor::getSingleton().setImage( &CEGUI::ImagesetManager::getSingleton().getImageset( "TaharezLook" )->getImage( "MouseArrow" ) );
+- // hide CEGUI mouse always because we render it manually
+- CEGUI::MouseCursor::getSingleton().hide();
++ CEGUI::MouseCursor::getSingleton().setImage( &CEGUI::ImagesetManager::getSingleton().get( "TaharezLook" ).getImage( "MouseArrow" ) );
+ // default tooltip
+ pGuiSystem->setDefaultTooltip( "TaharezLook/Tooltip" );
+ // create default root window
+@@ -553,7 +551,7 @@ + pFont->Restore_Textures();
+
+ // send new size to CEGUI
+- pGuiRenderer->setDisplaySize( CEGUI::Size( static_cast<float>(screen_w), static_cast<float>(screen_h) ) );
++ pGuiSystem->notifyDisplaySizeChanged( CEGUI::Size( static_cast<float>(screen_w), static_cast<float>(screen_h) ) );
+
+ // check if CEGUI is initialized
+ bool cegui_initialized = pGuiSystem->getGUISheet() != NULL;
+diff -ur smc-1.9/src/video/video.h smc-1.9-b/src/video/video.h +--- smc-1.9/src/video/video.h 2009-07-04 10:49:50.000000000 +0200 ++++ smc-1.9-b/src/video/video.h 2011-01-19 01:16:42.791283379 +0100 +@@ -23,7 +23,7 @@ + #include "SDL_opengl.h"
+ // CEGUI
+ #include "CEGUI.h"
+-#include "RendererModules/OpenGLGUIRenderer/openglrenderer.h"
++#include <RendererModules/OpenGL/CEGUIOpenGLRenderer.h>
+
+ namespace SMC
+ {
+@@ -129,31 +129,100 @@ + EFFECT_IN_AMOUNT
+ };
+
+-/* *** *** *** *** *** *** *** CEGUI renderer fake class *** *** *** *** *** *** *** *** *** *** */
++/* *** *** *** *** *** *** *** CEGUI renderer fake classes *** *** *** *** *** *** *** *** *** *** */
++// CEGUI 0.7.x requires more 'fake' classes than the 0.6.x version did...
++class cFake_GeometryBuffer : public CEGUI::GeometryBuffer
++{
++ void draw() const {}
++ void setTranslation(const CEGUI::Vector3&) {}
++ void setRotation(const CEGUI::Vector3&) {}
++ void setPivot(const CEGUI::Vector3&) {}
++ void setClippingRegion(const CEGUI::Rect&) {}
++ void appendVertex(const CEGUI::Vertex&) {}
++ void appendGeometry(const CEGUI::Vertex* const, CEGUI::uint) {}
++ void setActiveTexture(CEGUI::Texture*) {}
++ void reset() {}
++ CEGUI::Texture* getActiveTexture() const { return 0; }
++ CEGUI::uint getVertexCount() const { return 0; }
++ CEGUI::uint getBatchCount() const { return 0; }
++ void setRenderEffect(CEGUI::RenderEffect*) {}
++ CEGUI::RenderEffect* getRenderEffect() { return 0; }
++};
+
+-class cFake_Renderer : public CEGUI::Renderer
++class cFake_Texture : public CEGUI::Texture
++{
++public:
++ cFake_Texture() :
++ m_size(1, 1),
++ m_scaling(1, 1) {}
++
++ const CEGUI::Size& getSize() const { return m_size; }
++ const CEGUI::Size& getOriginalDataSize() const { return m_size; }
++ const CEGUI::Vector2& getTexelScaling() const { return m_scaling; }
++ void loadFromFile(const CEGUI::String&, const CEGUI::String&) {}
++ void loadFromMemory(const void*, const CEGUI::Size&, CEGUI::Texture::PixelFormat) {}
++ void saveToMemory(void*) {}
++
++private:
++ CEGUI::Size m_size;
++ CEGUI::Vector2 m_scaling;
++};
++
++class cFake_RenderTarget : public CEGUI::RenderTarget
+ {
+ public:
+- cFake_Renderer( void );
+- virtual ~cFake_Renderer( void );
++ cFake_RenderTarget() : m_area(0, 0, 0, 0) {}
++ void draw(const CEGUI::GeometryBuffer&) {}
++ void draw(const CEGUI::RenderQueue&) {}
++ void setArea(const CEGUI::Rect&) {}
++ const CEGUI::Rect& getArea() const { return m_area; }
++ bool isImageryCache() const { return false; }
++ void activate() {}
++ void deactivate() {}
++ void unprojectPoint(const CEGUI::GeometryBuffer&, const CEGUI::Vector2&, CEGUI::Vector2&) const {}
++
++private:
++ CEGUI::Rect m_area;
++};
+
+- virtual void addQuad(const CEGUI::Rect& dest_rect, float z, const CEGUI::Texture* tex, const CEGUI::Rect& texture_rect, const CEGUI::ColourRect& colours, CEGUI::QuadSplitMode quad_split_mode) {};
+- virtual void doRender(void) {};
+- virtual void clearRenderList(void) {};
+- virtual void setQueueingEnabled(bool setting) {};
+- virtual CEGUI::Texture *createTexture(void) { return NULL; };
+- virtual CEGUI::Texture *createTexture(const CEGUI::String& filename, const CEGUI::String& resourceGroup) { return NULL; };
+- virtual CEGUI::Texture *createTexture(float size) { return NULL; };
+- virtual void destroyTexture(CEGUI::Texture* texture) {};
+- virtual void destroyAllTextures(void) {};
+- virtual bool isQueueingEnabled(void) const { return 0; };
+- virtual float getWidth(void) const { return 0; };
+- virtual float getHeight(void) const { return 0; };
+- virtual CEGUI::Size getSize(void) const { return CEGUI::Size();};
+- virtual CEGUI::Rect getRect(void) const { return CEGUI::Rect();};
+- virtual unsigned int getMaxTextureSize(void) const { return 0; };
+- virtual unsigned int getHorzScreenDPI(void) const { return 0; };
+- virtual unsigned int getVertScreenDPI(void) const { return 0; };
++class cFake_Renderer : public CEGUI::Renderer
++{
++public:
++ cFake_Renderer( void ) :
++ m_size(0, 0),
++ m_dpi(0, 0),
++ m_identifierString("Fake Renderer"),
++ m_root(m_target) {}
++ ~cFake_Renderer( void ) {}
++
++ CEGUI::RenderingRoot& getDefaultRenderingRoot() { return m_root; }
++ CEGUI::GeometryBuffer& createGeometryBuffer() { return m_geometry; }
++ void destroyGeometryBuffer(const CEGUI::GeometryBuffer&) {}
++ void destroyAllGeometryBuffers() {}
++ CEGUI::TextureTarget* createTextureTarget() { return 0; }
++ void destroyTextureTarget(CEGUI::TextureTarget*) {}
++ void destroyAllTextureTargets() {}
++ CEGUI::Texture& createTexture() { return m_texture; }
++ CEGUI::Texture& createTexture(const CEGUI::String&, const CEGUI::String&) { return m_texture; }
++ CEGUI::Texture& createTexture(const CEGUI::Size&) { return m_texture; }
++ void destroyTexture(CEGUI::Texture&) {}
++ void destroyAllTextures() {}
++ void beginRendering() {}
++ void endRendering() {}
++ void setDisplaySize(const CEGUI::Size&) {}
++ const CEGUI::Size& getDisplaySize() const { return m_size; }
++ const CEGUI::Vector2& getDisplayDPI() const {return m_dpi; }
++ CEGUI::uint getMaxTextureSize() const { return 0; }
++ const CEGUI::String& getIdentifierString() const { return m_identifierString; }
++
++private:
++ CEGUI::Size m_size;
++ CEGUI::Vector2 m_dpi;
++ CEGUI::String m_identifierString;
++ cFake_GeometryBuffer m_geometry;
++ cFake_Texture m_texture;
++ cFake_RenderTarget m_target;
++ CEGUI::RenderingRoot m_root;
+ };
+
+ /* *** *** *** *** *** *** *** Video class *** *** *** *** *** *** *** *** *** *** */
|