Revision: 2450 http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=2450&view=rev Author: rorthomas Date: 2012-02-04 22:26:29 +0000 (Sat, 04 Feb 2012) Log Message: ----------- skia disabled by default, added first canvas
Modified Paths: -------------- trunk/CMakeDependenciesConfig.txt trunk/source/main/CMakeLists.txt trunk/source/main/physics/threading/BeamWorkerManager.cpp trunk/source/main/physics/threading/BeamWorkerManager.h Modified: trunk/CMakeDependenciesConfig.txt =================================================================== --- trunk/CMakeDependenciesConfig.txt 2012-02-04 21:19:34 UTC (rev 2449) +++ trunk/CMakeDependenciesConfig.txt 2012-02-04 22:26:29 UTC (rev 2450) @@ -17,7 +17,7 @@ # set some defaults IF(WIN32) - set(ROR_USE_SKIA "TRUE" CACHE BOOL "EXPERIMENTAL: use skia, the google 2D vector drawing lib") + set(ROR_USE_SKIA "FALSE" CACHE BOOL "EXPERIMENTAL: use skia, the google 2D vector drawing lib") macro(importLib libName dirName) message(STATUS "adding imported lib: ${libName} : ${ROR_DEPENDENCIES_DIR}/libs/${ARCH_DIR}/${dirName}/Release/${libName}.lib") add_library(${libName} STATIC IMPORTED) @@ -108,9 +108,9 @@ endif(ROR_USE_CURL) if(ROR_USE_SKIA) - set(SKIA_INCLUDE_DIRS "${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/config;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/core" CACHE PATH "The Skia include path to use") + set(SKIA_INCLUDE_DIRS "${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/config;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/core;${RoR_SOURCE_DIR}/source/OgreCanvas" CACHE PATH "The Skia include path to use") set(SKIA_LIBRARY_DIRS "${ROR_DEPENDENCIES_DIR}/libs/${ARCH_DIR}/Skia/Release" CACHE PATH "The Skia lib path to use") - set(SKIA_LIBRARIES "core" CACHE STRING "The skia libs to link against") + set(SKIA_LIBRARIES "core;animator;gr;effects;views;utils;svg;pdf;images;skgr;ports;xps;opts;xml;experimental;libtess;zlib;usp10;windowscodecs" CACHE STRING "The skia libs to link against") importLib(core Skia) endif(ROR_USE_SKIA) Modified: trunk/source/main/CMakeLists.txt =================================================================== --- trunk/source/main/CMakeLists.txt 2012-02-04 21:19:34 UTC (rev 2449) +++ trunk/source/main/CMakeLists.txt 2012-02-04 22:26:29 UTC (rev 2450) @@ -51,7 +51,7 @@ if(ROR_USE_SKIA) setup_lib(SKIA) - set(optional_libs ${optional_libs};${SKIA_LIBRARIES}) + set(optional_libs ${optional_libs};${SKIA_LIBRARIES};OgreCanvas) endif() Modified: trunk/source/main/physics/threading/BeamWorkerManager.cpp =================================================================== --- trunk/source/main/physics/threading/BeamWorkerManager.cpp 2012-02-04 21:19:34 UTC (rev 2449) +++ trunk/source/main/physics/threading/BeamWorkerManager.cpp 2012-02-04 22:26:29 UTC (rev 2450) @@ -30,7 +30,12 @@ # include <unistd.h> #endif // WIN32 #include <time.h> +#include "OgrePanelOverlayElement.h" +#ifdef USE_SKIA +#include <CanvasTexture.h> +#endif // USE_SKIA + using namespace Ogre; void *threadWorkerManagerEntry(void* ptr) @@ -39,13 +44,13 @@ BeamWorkerManager::getSingleton()._startWorkerLoop(); // delete singleton maybe? pthread_exit(NULL); - return NULL; + return NULL; } BeamWorkerManager::BeamWorkerManager() : threads() , threadsSize(0) - , targetThreadSize(4096) + , targetThreadSize(16) , done_count(0) , done_count_mutex() , done_count_cv() @@ -56,6 +61,8 @@ pthread_cond_init(&done_count_cv, NULL); threads.clear(); + + initDebugging(); } BeamWorkerManager::~BeamWorkerManager() @@ -81,7 +88,7 @@ { LOG("worker manager started in thread " + getThreadIDAsString()); int rc = 0; - struct timespec timeout; + //struct timespec timeout; int local_done_count = -1; while (1) { @@ -213,3 +220,35 @@ MUTEX_UNLOCK(&wd.work_mutex); // return to continue to do work } + +void BeamWorkerManager::initDebugging() +{ +#ifdef USE_SKIA + Ogre::Canvas::Texture *mCanvasTextureClock1 = new Ogre::Canvas::Texture("CanvasClock1", 150, 150); + mCanvasTextureClock1->createMaterial(); + + // paint + Ogre::Canvas::Context* ctx = mCanvasTextureClock1->getContext(); + ctx->save(); + ctx->clearRect(0, 0, 150, 150); + ctx->strokeStyle(Ogre::ColourValue::Black); + ctx->fillStyle(Ogre::ColourValue::White); + ctx->fillRect(0, 0, 150, 150); + ctx->translate(75, 75); + ctx->scale(0.4f, 0.4f); + ctx->rotate(-Ogre::Math::PI/2.0f); + ctx->lineWidth(8); + ctx->lineCap(Ogre::Canvas::LineCap_Round); + ctx->restore(); + mCanvasTextureClock1->uploadTexture(); + + Ogre::Overlay* overlay = Ogre::OverlayManager::getSingleton().create("Canvas/Overlay"); + Ogre::PanelOverlayElement* panel = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "CanvasClock1/Panel")); + panel->setMetricsMode(Ogre::GMM_PIXELS); + panel->setMaterialName("CanvasClock1"); + panel->setDimensions(600.0f, 150.0f); + panel->setPosition(0, 0); + overlay->add2D(panel); + overlay->show(); +#endif // USE_SKIA +} \ No newline at end of file Modified: trunk/source/main/physics/threading/BeamWorkerManager.h =================================================================== --- trunk/source/main/physics/threading/BeamWorkerManager.h 2012-02-04 21:19:34 UTC (rev 2449) +++ trunk/source/main/physics/threading/BeamWorkerManager.h 2012-02-04 22:26:29 UTC (rev 2450) @@ -61,6 +61,7 @@ void addThread(BeamThread *bthread); void removeThread(BeamThread *bthread); void syncThreads(BeamThread *bthread); + void initDebugging(); public: static void createThread(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ Rigsofrods-devel mailing list Rigsofrods-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel