Expose wrapper C interface for Syborg from KhronosAPIWrapper. Needs update to QEMU!
Make KhronosAPIWrapper buildable using GCC.
--- a/CMakeLists.txt Mon Nov 01 18:11:59 2010 +0000
+++ b/CMakeLists.txt Tue Nov 02 09:40:31 2010 +0000
@@ -72,8 +72,7 @@
if (SIMULATOR_EXTENSIONS)
add_subdirectory(vghwinterface/vghwapiwrapper) # Simulator serialization (host)
add_dependencies(KhronosAPIWrapper libEGL libGLESv1 libGLESv2)
- add_dependencies(syborg-graphicswrapper libEGL libGLESv1 libGLESv2)
- set(ALL_TARGETS libEGL libOpenVG libGLESv1 libGLESv2 KhronosAPIWrapper syborg-graphicswrapper)
+ set(ALL_TARGETS libEGL libOpenVG libGLESv1 libGLESv2 KhronosAPIWrapper)
else(SIMULATOR_EXTENSIONS)
set(ALL_TARGETS libEGL libOpenVG libGLESv1 libGLESv2)
endif(SIMULATOR_EXTENSIONS)
--- a/vghwinterface/vghwapiwrapper/CMakeLists.txt Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/CMakeLists.txt Tue Nov 02 09:40:31 2010 +0000
@@ -38,7 +38,7 @@
${WRAPPER_INC_DIR}/openvgapiwrapper.h
${WRAPPER_INC_DIR}/driverapiwrapper.h
${WRAPPER_INC_DIR}/opengles11apiwrapper.h
- ${WRAPPER_INC_DIR}/syborg-graphicswrapper.h
+ ${WRAPPER_INC_DIR}/simulator_graphicswrapper.h
${WRAPPER_INC_DIR}/hostthreadadapter.h
${WRAPPER_INC_DIR}/platformthreading.h
${WRAPPER_INC_DIR}/platformtypes.h
@@ -56,7 +56,7 @@
${WRAPPER_SRC_DIR}/openvgapiwrapper.cpp
${WRAPPER_SRC_DIR}/driverapiwrapper.cpp
${WRAPPER_SRC_DIR}/opengles11apiwrapper.cpp
- ${WRAPPER_SRC_DIR}/syborg-graphicswrapper.cpp
+ ${WRAPPER_SRC_DIR}/simulator_graphicswrapper.cpp
${WRAPPER_SRC_DIR}/platformthreading.cpp
${SERIALIZER_SRC_DIR}/eglrfc.cpp
@@ -77,10 +77,8 @@
link_directories(${GLOBAL_LIB_DIR})
-add_definitions(-DKHRONOSAPIWRAPPER_EXPORTS -DSYBORG_GRAPHICSWRAPPER_EXPORTS)
+add_definitions(-DKHRONOSAPIWRAPPER_EXPORTS -DSIMULATOR_GRAPHICSWRAPPER_EXPORTS)
add_library(KhronosAPIWrapper SHARED ${WRAPPER_SRC_FILES})
-add_library(syborg-graphicswrapper SHARED ${WRAPPER_SRC_FILES})
target_link_libraries(KhronosAPIWrapper ${WRAPPER_PLATFORM_LINK_LIBRARIES})
-target_link_libraries(syborg-graphicswrapper ${WRAPPER_PLATFORM_LINK_LIBRARIES})
--- a/vghwinterface/vghwapiwrapper/group/bld.inf Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/group/bld.inf Tue Nov 02 09:40:31 2010 +0000
@@ -0,0 +1,50 @@
+/* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and /or associated documentation files
+ * (the "Materials "), to deal in the Materials without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Materials,
+ * and to permit persons to whom the Materials are furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Materials.
+ *
+ * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
+ * THE USE OR OTHER DEALINGS IN THE MATERIALS.
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ * Build information for host wrapper
+ */
+
+PRJ_PLATFORMS
+TOOLS2
+
+PRJ_EXTENSIONS
+
+// Dynamic library.
+start extension graphics_simulator/hostbuild
+option TARGET_NAME KhronosAPIWrapper
+option TARGET_TYPE dll
+option SOURCE_DIRS ../src
+option SOURCE_FOLDER ../../vghwserialiser/src
+option SOURCE eglrfc.cpp remotefunctioncall.cpp serializedfunctioncall.cpp driverrfc.cpp opengles11rfc.cpp openvgrfc.cpp
+option INCLUDES ../inc ../../inc ../../../inc ../../vghwserialiser/inc
+option SYS_INCLUDES OS_LAYER_PUBLIC_EXPORT_PATH(tools)
+option MACROS KHRONOSAPIWRAPPER_EXPORTS SIMULATOR_GRAPHICSWRAPPER_EXPORTS
+option COMPILE_OPTIONS -msse2 -mfpmath=sse -march=pentium4
+option NO_STD_INCLUDE ON
+option SHARED_LIBS libEGL libGLESv1 libOpenVG
+//option SHARED_LIBS libGLESv2 (when ready)
+end
--- a/vghwinterface/vghwapiwrapper/inc/KhronosAPIWrapper.h Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/inc/KhronosAPIWrapper.h Tue Nov 02 09:40:31 2010 +0000
@@ -54,7 +54,7 @@
KhronosAPIWrapper( MGraphicsVHWCallback* aServiceIf, void* surfacebuffer,
void* inputdata, void* outputdata );
- ~KhronosAPIWrapper();
+ virtual ~KhronosAPIWrapper();
void WorkerThread();
--- a/vghwinterface/vghwapiwrapper/inc/platformtypes.h Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/inc/platformtypes.h Tue Nov 02 09:40:31 2010 +0000
@@ -26,7 +26,7 @@
#endif
-#ifdef WIN32
+#if defined(WIN32) && !defined(__GNUG__)
#if !defined(__STDC_CONSTANT_MACROS) && !defined(HAVE_STDINT_H)
#define __STDC_CONSTANT_MACROS
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vghwinterface/vghwapiwrapper/inc/simulator_graphicswrapper.h Tue Nov 02 09:40:31 2010 +0000
@@ -0,0 +1,47 @@
+#ifndef _SIMULATOR_GRAPHICSWRAPPER_H
+#define _SIMULATOR_GRAPHICSWRAPPER_H
+
+#pragma once
+
+#ifdef WIN32
+#ifdef SIMULATOR_GRAPHICSWRAPPER_EXPORTS
+#define SIMULATOR_GRAPHICSWRAPPER_API __declspec(dllexport)
+#else
+#define SIMULATOR_GRAPHICSWRAPPER_API __declspec(dllimport)
+#endif
+#else
+#define SIMULATOR_GRAPHICSWRAPPER_API
+#endif
+
+Psu::PLATFORM_SEMAPHORE_T m_outputBufferSemaphore;
+int (*m_pythonCallBack)(int);
+KhronosAPIWrapper* m_wrapper;
+
+
+// Derived from GraphicsVirtualHW.lisa
+static const int VVHW_BUFFER (0x3000000);
+static const int VVHW_INPUT_BUFFER (0x1000000);
+static const int VVHW_INPUT_BASE(0x0);
+static const int VVHW_OUTPUT_BUFFER (0x1000000);
+static const int VVHW_OUTPUT_BASE(0x1000000);
+static const int VVHW_FRAME_BUFFER (0x1000000);
+static const int VVHW_FRAME_BASE(0x2000000);
+
+class SimulatorGraphicsWrapper : public MGraphicsVHWCallback
+ {
+ public:
+
+ SimulatorGraphicsWrapper();
+ ~SimulatorGraphicsWrapper();
+
+ int Reset( uint32_t *aGraphicsMemBase, uint32_t *aCommandMemBase );
+
+ virtual void LockOutputBuffer();
+ virtual void ReleaseOutputBuffer();
+ virtual void ProcessingDone(int i);
+
+ private:
+ };
+
+
+#endif // _SIMULATOR_GRAPHICSWRAPPER_H
--- a/vghwinterface/vghwapiwrapper/inc/syborg-graphicswrapper.h Mon Nov 01 18:11:59 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#ifndef _SYBORG_GRAPHICSWRAPPER_H
-#define _SYBORG_GRAPHICSWRAPPER_H
-
-#pragma once
-
-#ifdef WIN32
-#ifdef SYBORG_GRAPHICSWRAPPER_EXPORTS
-#define SYBORG_GRAPHICSWRAPPER_API __declspec(dllexport)
-#else
-#define SYBORG_GRAPHICSWRAPPER_API __declspec(dllimport)
-#endif
-#else
-#define SYBORG_GRAPHICSWRAPPER_API
-#endif
-
-Psu::PLATFORM_SEMAPHORE_T m_outputBufferSemaphore;
-int (*m_pythonCallBack)(int);
-KhronosAPIWrapper* m_wrapper;
-
-
-// Derived from GraphicsVirtualHW.lisa
-static const int VVHW_BUFFER (0x3000000);
-static const int VVHW_INPUT_BUFFER (0x1000000);
-static const int VVHW_INPUT_BASE(0x0);
-static const int VVHW_OUTPUT_BUFFER (0x1000000);
-static const int VVHW_OUTPUT_BASE(0x1000000);
-static const int VVHW_FRAME_BUFFER (0x1000000);
-static const int VVHW_FRAME_BASE(0x2000000);
-
-class SyborgGraphicsWrapper : public MGraphicsVHWCallback
- {
- public:
-
- SyborgGraphicsWrapper();
- ~SyborgGraphicsWrapper();
-
- int Reset( uint32_t *aGraphicsMemBase, uint32_t *aCommandMemBase );
-
- virtual void LockOutputBuffer();
- virtual void ReleaseOutputBuffer();
- virtual void ProcessingDone(int i);
-
- private:
- };
-
-
-#endif // _SYBORG_GRAPHICSWRAPPER_H
\ No newline at end of file
--- a/vghwinterface/vghwapiwrapper/src/driverapiwrapper.cpp Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/src/driverapiwrapper.cpp Tue Nov 02 09:40:31 2010 +0000
@@ -245,13 +245,6 @@
::eglMakeCurrent( m_Dpy, m_DudSurface, m_DudSurface, m_PoolContext );
- //eglCreatePbufferSurface
- EGLint pbuffer_surface_attribs[] =
- {
- EGL_WIDTH, w,
- EGL_HEIGHT, h,
- EGL_NONE
- };
VGImageFormat format = getVGColorFormat( pixelformat );
img = ::vgCreateImage(format, w, h, VG_IMAGE_QUALITY_NONANTIALIASED);//todo: quality; how to decide (TSgImageInfo only provides w,h, pixelformat)?
if( img != VG_INVALID_HANDLE )
--- a/vghwinterface/vghwapiwrapper/src/eglapiwrapper.cpp Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/src/eglapiwrapper.cpp Tue Nov 02 09:40:31 2010 +0000
@@ -61,7 +61,9 @@
{
TRACE("EGLAPIWrapper::WriteReply()\n");
#ifdef LOG_ERROR
+#ifdef PRINT_TRACES
int operationid = (int)m_currentFunctionCall.Data().Header().iOpCode;
+#endif
int eglerror = ::eglSimulatorGetError();
if ( m_lastEglError != eglerror )
{
@@ -573,7 +575,6 @@
EGLDisplay dpy;
EGLConfig config;
EGLContext share_context;
- EGLBoolean sgSupporting(EGL_FALSE);
m_currentFunctionCall.GetEGLDisplay( dpy, 0 );
m_currentFunctionCall.GetEGLConfig( config, 1 );
@@ -926,7 +927,6 @@
//For storing all the configs
EGLConfig* allConfigs = 0;
- EGLint allConfigsSize = 0;//size of the array
EGLint allConfigsCnt = 0;//Number of actually received configurations
//Allocate temporary storage for the attributes for each config
--- a/vghwinterface/vghwapiwrapper/src/opengles11apiwrapper.cpp Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/src/opengles11apiwrapper.cpp Tue Nov 02 09:40:31 2010 +0000
@@ -526,7 +526,9 @@
int OGLES11Wrapper::WriteReply()
{
#ifdef LOG_ERROR
+#ifdef PRINT_TRACES
int operationid = (int)m_currentFunctionCall.Data().Header().iOpCode;
+#endif
int glerror = ::glGetError();
if ( m_lastGlError != glerror )
--- a/vghwinterface/vghwapiwrapper/src/openvgapiwrapper.cpp Mon Nov 01 18:11:59 2010 +0000
+++ b/vghwinterface/vghwapiwrapper/src/openvgapiwrapper.cpp Tue Nov 02 09:40:31 2010 +0000
@@ -2170,4 +2170,4 @@
break;
}
return ret;
-}
\ No newline at end of file
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vghwinterface/vghwapiwrapper/src/simulator_graphicswrapper.cpp Tue Nov 02 09:40:31 2010 +0000
@@ -0,0 +1,150 @@
+// This is the main DLL file.
+
+#include "platformtypes.h"
+#include <KhronosAPIWrapper.h>
+#include <guestvideodriverinterfaceconstants.h> //Registers and enums
+#include <platformthreading.h> //mutex
+#include <graphicsvhwcallback.h>
+#include "simulator_graphicswrapper.h"
+
+SimulatorGraphicsWrapper::SimulatorGraphicsWrapper()
+ {
+ }
+
+SimulatorGraphicsWrapper::~SimulatorGraphicsWrapper()
+ {
+ delete m_wrapper;
+ m_wrapper = 0;
+
+ Psu::platform_release_semaphore(m_outputBufferSemaphore);
+ }
+
+int SimulatorGraphicsWrapper::Reset( uint32_t *aGraphicsMemBase, uint32_t *aCommandMemBase )
+ {
+ int ret = -1;
+ if ( m_wrapper )
+ {
+ delete m_wrapper;
+ }
+ m_wrapper = NULL;
+
+ uint8_t *cmd_buffer = (uint8_t *)aCommandMemBase;
+ uint8_t *frame_buffer = (uint8_t *)aGraphicsMemBase;
+ if( (cmd_buffer != NULL) && (frame_buffer != NULL) )
+ {
+ m_wrapper = new KhronosAPIWrapper( (MGraphicsVHWCallback*)this,
+ frame_buffer, &cmd_buffer[VVHW_INPUT_BASE], &cmd_buffer[VVHW_OUTPUT_BASE] );
+ //Reset synchronisation mechanisms
+ Psu::platform_release_semaphore(m_outputBufferSemaphore);
+ Psu::platform_create_semaphore(m_outputBufferSemaphore, 1, 1);
+ ret = 0;
+ }
+ else
+ {
+ ret = -1;
+ }
+ return ret;
+ }
+
+void SimulatorGraphicsWrapper::LockOutputBuffer()
+ {
+ #ifdef KHRONOS_API_W_MULTITHREAD
+ Psu::platform_wait_for_signal(m_outputBufferSemaphore);
+ #endif
+ }
+
+void SimulatorGraphicsWrapper::ReleaseOutputBuffer(){}
+
+void SimulatorGraphicsWrapper::ProcessingDone(int i)
+ {
+ m_pythonCallBack( i );
+ }
+
+extern "C"
+ {
+ SIMULATOR_GRAPHICSWRAPPER_API SimulatorGraphicsWrapper* create_SimulatorGraphicsWrapper()
+ {
+ return new SimulatorGraphicsWrapper();
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API int initialize_SimulatorGraphicsWrapper( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ Psu::platform_create_semaphore(m_outputBufferSemaphore, 1, 1);
+ // Change to proper error handling
+ return 0;
+ }
+
+ SIMULATOR_GRAPHICSWRAPPER_API int set_GraphicsCallBack( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper, int (*aGraphicsCallBack) (int) )
+ {
+ m_pythonCallBack = aGraphicsCallBack;
+ // Change to proper error handling
+ return 0;
+ }
+
+ SIMULATOR_GRAPHICSWRAPPER_API int reset_SimulatorGraphicsWrapper( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper, uint32_t *aGraphicsMemBase, uint32_t *aCommandMemBase )
+ {
+ return aSimulatorGraphicsWrapper->Reset( aGraphicsMemBase, aCommandMemBase );
+ }
+
+ SIMULATOR_GRAPHICSWRAPPER_API uint32_t get_InputBufferTail( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ return m_wrapper->InputBufferTail();
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API uint32_t get_InputBufferHead( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ return m_wrapper->InputBufferHead( );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API uint32_t get_InputBufferReadCount( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ return m_wrapper->InputBufferReadCount( );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API uint32_t get_InputBufferWriteCount( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ return m_wrapper->InputBufferWriteCount( );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API uint32_t get_InputMaxTailIndex( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ return m_wrapper->InputMaxTailIndex( );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API uint32_t get_cmd_memsize( void )
+ {
+ return (VVI_PARAMETERS_INPUT_MEMORY_SIZE +
+ VVI_PARAMETERS_OUTPUT_MEMORY_SIZE);
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API uint32_t get_framebuffer_memsize( void )
+ {
+ return VVI_SURFACEBUFFER_BASE_ADDRESS;
+ }
+
+
+ SIMULATOR_GRAPHICSWRAPPER_API unsigned int execute_command( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ return m_wrapper->Execute( );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API void set_InputBufferTail( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper, uint32_t aVal )
+ {
+ m_wrapper->SetInputBufferTail( aVal );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API void set_InputBufferHead( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper, uint32_t aVal )
+ {
+ m_wrapper->SetInputBufferHead( aVal );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API void set_InputBufferReadCount( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper, uint32_t aVal )
+ {
+ m_wrapper->SetInputBufferReadCount( aVal );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API void set_InputBufferWriteCount( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper, uint32_t aVal )
+ {
+ m_wrapper->SetInputBufferWriteCount( aVal );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API void set_InputMaxTailIndex( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper, uint32_t aVal )
+ {
+ m_wrapper->SetInputMaxTailIndex( aVal );
+ }
+ SIMULATOR_GRAPHICSWRAPPER_API void signal_outputbuffer_semafore( SimulatorGraphicsWrapper* aSimulatorGraphicsWrapper )
+ {
+ #ifdef KHRONOS_API_W_MULTITHREAD
+ Psu::platform_signal_semaphore(m_outputBufferSemaphore);
+ #endif
+ }
+
+ }
--- a/vghwinterface/vghwapiwrapper/src/syborg-graphicswrapper.cpp Mon Nov 01 18:11:59 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-// This is the main DLL file.
-
-#include "platformtypes.h"
-#include <KhronosAPIWrapper.h>
-#include <guestvideodriverinterfaceconstants.h> //Registers and enums
-#include <platformthreading.h> //mutex
-#include <graphicsvhwcallback.h>
-#include "syborg-graphicswrapper.h"
-
-SyborgGraphicsWrapper::SyborgGraphicsWrapper()
- {
- }
-
-SyborgGraphicsWrapper::~SyborgGraphicsWrapper()
- {
- delete m_wrapper;
- m_wrapper = 0;
-
- Psu::platform_release_semaphore(m_outputBufferSemaphore);
- }
-
-int SyborgGraphicsWrapper::Reset( uint32_t *aGraphicsMemBase, uint32_t *aCommandMemBase )
- {
- int ret = -1;
- if ( m_wrapper )
- {
- delete m_wrapper;
- }
- m_wrapper = NULL;
-
- uint8_t *cmd_buffer = (uint8_t *)aCommandMemBase;
- uint8_t *frame_buffer = (uint8_t *)aGraphicsMemBase;
- if( (cmd_buffer != NULL) && (frame_buffer != NULL) )
- {
- m_wrapper = new KhronosAPIWrapper( (MGraphicsVHWCallback*)this,
- frame_buffer, &cmd_buffer[VVHW_INPUT_BASE], &cmd_buffer[VVHW_OUTPUT_BASE] );
- //Reset synchronisation mechanisms
- Psu::platform_release_semaphore(m_outputBufferSemaphore);
- Psu::platform_create_semaphore(m_outputBufferSemaphore, 1, 1);
- ret = 0;
- }
- else
- {
- ret = -1;
- }
- return ret;
- }
-
-void SyborgGraphicsWrapper::LockOutputBuffer()
- {
- #ifdef KHRONOS_API_W_MULTITHREAD
- Psu::platform_wait_for_signal(m_outputBufferSemaphore);
- #endif
- }
-
-void SyborgGraphicsWrapper::ReleaseOutputBuffer(){}
-
-void SyborgGraphicsWrapper::ProcessingDone(int i)
- {
- m_pythonCallBack( i );
- }
-
-extern "C"
- {
- SYBORG_GRAPHICSWRAPPER_API SyborgGraphicsWrapper* create_SyborgGraphicsWrapper()
- {
- return new SyborgGraphicsWrapper();
- }
- SYBORG_GRAPHICSWRAPPER_API int initialize_SyborgGraphicsWrapper( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- Psu::platform_create_semaphore(m_outputBufferSemaphore, 1, 1);
- // Change to proper error handling
- return 0;
- }
-
- SYBORG_GRAPHICSWRAPPER_API int set_GraphicsCallBack( SyborgGraphicsWrapper* aSyborgGraphicsWrapper, int (*aGraphicsCallBack) (int) )
- {
- m_pythonCallBack = aGraphicsCallBack;
- // Change to proper error handling
- return 0;
- }
-
- SYBORG_GRAPHICSWRAPPER_API int reset_SyborgGraphicsWrapper( SyborgGraphicsWrapper* aSyborgGraphicsWrapper, uint32_t *aGraphicsMemBase, uint32_t *aCommandMemBase )
- {
- return aSyborgGraphicsWrapper->Reset( aGraphicsMemBase, aCommandMemBase );
- }
-
- SYBORG_GRAPHICSWRAPPER_API uint32_t get_InputBufferTail( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- return m_wrapper->InputBufferTail();
- }
- SYBORG_GRAPHICSWRAPPER_API uint32_t get_InputBufferHead( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- return m_wrapper->InputBufferHead( );
- }
- SYBORG_GRAPHICSWRAPPER_API uint32_t get_InputBufferReadCount( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- return m_wrapper->InputBufferReadCount( );
- }
- SYBORG_GRAPHICSWRAPPER_API uint32_t get_InputBufferWriteCount( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- return m_wrapper->InputBufferWriteCount( );
- }
- SYBORG_GRAPHICSWRAPPER_API uint32_t get_InputMaxTailIndex( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- return m_wrapper->InputMaxTailIndex( );
- }
- SYBORG_GRAPHICSWRAPPER_API uint32_t get_cmd_memsize( void )
- {
- return (VVI_PARAMETERS_INPUT_MEMORY_SIZE +
- VVI_PARAMETERS_OUTPUT_MEMORY_SIZE);
- }
- SYBORG_GRAPHICSWRAPPER_API uint32_t get_framebuffer_memsize( void )
- {
- return VVI_SURFACEBUFFER_BASE_ADDRESS;
- }
-
-
- SYBORG_GRAPHICSWRAPPER_API unsigned int execute_command( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- return m_wrapper->Execute( );
- }
- SYBORG_GRAPHICSWRAPPER_API void set_InputBufferTail( SyborgGraphicsWrapper* aSyborgGraphicsWrapper, uint32_t aVal )
- {
- m_wrapper->SetInputBufferTail( aVal );
- }
- SYBORG_GRAPHICSWRAPPER_API void set_InputBufferHead( SyborgGraphicsWrapper* aSyborgGraphicsWrapper, uint32_t aVal )
- {
- m_wrapper->SetInputBufferHead( aVal );
- }
- SYBORG_GRAPHICSWRAPPER_API void set_InputBufferReadCount( SyborgGraphicsWrapper* aSyborgGraphicsWrapper, uint32_t aVal )
- {
- m_wrapper->SetInputBufferReadCount( aVal );
- }
- SYBORG_GRAPHICSWRAPPER_API void set_InputBufferWriteCount( SyborgGraphicsWrapper* aSyborgGraphicsWrapper, uint32_t aVal )
- {
- m_wrapper->SetInputBufferWriteCount( aVal );
- }
- SYBORG_GRAPHICSWRAPPER_API void set_InputMaxTailIndex( SyborgGraphicsWrapper* aSyborgGraphicsWrapper, uint32_t aVal )
- {
- m_wrapper->SetInputMaxTailIndex( aVal );
- }
- SYBORG_GRAPHICSWRAPPER_API void signal_outputbuffer_semafore( SyborgGraphicsWrapper* aSyborgGraphicsWrapper )
- {
- #ifdef KHRONOS_API_W_MULTITHREAD
- Psu::platform_signal_semaphore(m_outputBufferSemaphore);
- #endif
- }
-
- }