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
[email protected]
https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel