Make the option ShivaVG or ShaderVG a Cmake option: USE_SHADERVG

This commit is contained in:
Erik Hofman 2022-02-20 15:37:33 +01:00
parent 6451e505d8
commit b157f9cb9f
11 changed files with 31 additions and 123 deletions

View File

@ -95,6 +95,7 @@ option(ENABLE_RTI "Set to ON to build SimGear with RTI support" OFF)
option(ENABLE_GDAL "Set to ON to build SimGear with GDAL support" OFF) option(ENABLE_GDAL "Set to ON to build SimGear with GDAL support" OFF)
option(ENABLE_TESTS "Set to OFF to disable building SimGear's test applications" ON) option(ENABLE_TESTS "Set to OFF to disable building SimGear's test applications" ON)
option(ENABLE_SOUND "Set to OFF to disable building SimGear's sound support" ON) option(ENABLE_SOUND "Set to OFF to disable building SimGear's sound support" ON)
option(USE_SHADERVG "Set to ON to use SHaderVG instead of ShivaVG" OFF)
option(USE_AEONWAVE "Set to ON to use AeonWave instead of OpenAL" ON) option(USE_AEONWAVE "Set to ON to use AeonWave instead of OpenAL" ON)
option(USE_OPENALSOFT "Set to ON to use OpenAL from OpenAL-soft" OFF) option(USE_OPENALSOFT "Set to ON to use OpenAL from OpenAL-soft" OFF)
@ -108,6 +109,14 @@ if (NOT ENABLE_SIMD AND ENABLE_SIMD_CODE)
set(ENABLE_SIMD_CODE OFF) set(ENABLE_SIMD_CODE OFF)
endif() endif()
if (USE_SHADERVG)
set(OPENVG ShaderVG)
find_package(GLEW REQUIRED)
else()
set(OPENVG ShivaVG)
endif()
message(STATUS "OpenVG: ${OPENVG}")
include (DetectArch) include (DetectArch)
include (ExportDebugSymbols) include (ExportDebugSymbols)

View File

@ -12,6 +12,11 @@ set(SIMGEAR_SOUND @ENABLE_SOUND@)
set(USE_AEONWAVE @USE_AEONWAVE@) set(USE_AEONWAVE @USE_AEONWAVE@)
set(SG_SOUND_USES_OPENALSOFT @SG_SOUND_USES_OPENALSOFT@) set(SG_SOUND_USES_OPENALSOFT @SG_SOUND_USES_OPENALSOFT@)
set(USE_SHADERVG @USE_SHADERVG@)
if (USE_SHADERVG)
find_dependency(GLEW REQUIRED)
endif()
set(ENABLE_ASAN @ENABLE_ASAN@) set(ENABLE_ASAN @ENABLE_ASAN@)
set(SIMGEAR_SHARED @SIMGEAR_SHARED@) set(SIMGEAR_SHARED @SIMGEAR_SHARED@)

View File

@ -154,7 +154,7 @@ target_link_libraries(SimGearCore PRIVATE
${WINSOCK_LIBRARY}) ${WINSOCK_LIBRARY})
if(NOT SIMGEAR_HEADLESS) if(NOT SIMGEAR_HEADLESS)
target_include_directories(SimGearScene PRIVATE ${PROJECT_SOURCE_DIR}/simgear/canvas/ShivaVG/include) target_include_directories(SimGearScene PRIVATE ${PROJECT_SOURCE_DIR}/simgear/canvas/${OPENVG}/include)
target_link_libraries(SimGearScene PUBLIC target_link_libraries(SimGearScene PUBLIC
SimGearCore SimGearCore
@ -162,7 +162,7 @@ if(NOT SIMGEAR_HEADLESS)
) )
if(HAVE_INTTYPES_H) if(HAVE_INTTYPES_H)
# ShivaVG needs inttypes.h # ShivaVG/ShaderVG needs inttypes.h
target_compile_definitions(SimGearScene PRIVATE HAVE_INTTYPES_H) target_compile_definitions(SimGearScene PRIVATE HAVE_INTTYPES_H)
endif() endif()
@ -173,6 +173,10 @@ if(NOT SIMGEAR_HEADLESS)
${FFMPEG_LIBRARIES} ${FFMPEG_LIBRARIES}
FGTinyGLTF) FGTinyGLTF)
if (USE_SHADERVG)
target_link_libraries(SimGearScene PRIVATE GLEW::GLEW)
endif()
# ToDo: define an ALIAS target for the sound backend, to get # ToDo: define an ALIAS target for the sound backend, to get
# rid of this logic here # rid of this logic here
if (ENABLE_SOUND) if (ENABLE_SOUND)

View File

@ -29,7 +29,7 @@ set(SOURCES
VGInitOperation.cxx VGInitOperation.cxx
) )
add_subdirectory(ShivaVG/src) add_subdirectory(${OPENVG}/src)
add_subdirectory(elements) add_subdirectory(elements)
add_subdirectory(events) add_subdirectory(events)
add_subdirectory(layout) add_subdirectory(layout)

View File

@ -20,4 +20,4 @@ set(SOURCES
shVgu.c shVgu.c
) )
simgear_scene_component(ShivaVG canvas/ShivaVG "${SOURCES}" "${HEADERS}") simgear_scene_component(ShaderVG canvas/ShaderVG "${SOURCES}" "${HEADERS}")

View File

@ -1,31 +0,0 @@
lib_LTLIBRARIES = libOpenVG.la
libOpenVG_la_CFLAGS = -pedantic -I$(top_builddir)/include/vg
libOpenVG_la_SOURCES =\
shDefs.h\
shExtensions.h\
shArrayBase.h\
shArrays.h\
shVectors.h\
shPath.h\
shImage.h\
shPaint.h\
shGeometry.h\
shContext.h\
shaders.h\
shExtensions.c\
shArrays.c\
shVectors.c\
shPath.c\
shImage.c\
shPaint.c\
shGeometry.c\
shPipeline.c\
shParams.c\
shContext.c\
shaders.c\
shVgu.c
VG_includedir = $(includedir)/vg
VG_include_HEADERS =\
$(top_builddir)/include/vg/openvg.h\
$(top_builddir)/include/vg/vgu.h

View File

@ -23,8 +23,6 @@
/* Standard headers */ /* Standard headers */
#include "shConfig.h"
#ifdef VG_API_WINDOWS #ifdef VG_API_WINDOWS
# include <windows.h> # include <windows.h>
#endif #endif
@ -156,17 +154,14 @@ SHfloat getMaxFloat();
/* OpenGL headers */ /* OpenGL headers */
#if defined(VG_API_LINUX) || defined(VG_API_FREEBSD) || defined(VG_API_OPENBSD) #if defined(VG_API_MACOSX)
#include <GL/gl.h> # include <OpenGL/gl.h>
#include <GL/glx.h>
#elif defined(VG_API_MACOSX)
#include <OpenGL/gl.h>
#elif defined(VG_API_WINDOWS) #elif defined(VG_API_WINDOWS)
#include <GL/gl.h> # define GL_GLEXT_PROTOTYPES
# include <GL/glcorearb.h>
#else #else
#define GL_GLEXT_LEGACY /* don't include glext.h */ # define GL_GLEXT_PROTOTYPES
#include <GL/gl.h> # include <GL/glcorearb.h>
#include <GL/glx.h>
#endif #endif
#include "shExtensions.h" #include "shExtensions.h"

View File

@ -38,7 +38,6 @@
#define _ARRAY_DEFINE #define _ARRAY_DEFINE
#include "shArrayBase.h" #include "shArrayBase.h"
#ifndef SH_NO_IMAGE
/*----------------------------------------------------------- /*-----------------------------------------------------------
* Prepares the proper pixel pack/unpack info for the given * Prepares the proper pixel pack/unpack info for the given
@ -446,8 +445,6 @@ void shLoadColor(SHColor *c, const void *data, SHImageFormatDesc *f)
if (f->rmask == 0x0) { c->r = 1.0f; c->g = 1.0f; c->b = 1.0f; } if (f->rmask == 0x0) { c->r = 1.0f; c->g = 1.0f; c->b = 1.0f; }
} }
#endif // SH_NO_IMAGE
/*---------------------------------------------- /*----------------------------------------------
* Color and Image constructors and destructors * Color and Image constructors and destructors
@ -469,11 +466,7 @@ void SHImage_ctor(SHImage *i)
i->data = NULL; i->data = NULL;
i->width = 0; i->width = 0;
i->height = 0; i->height = 0;
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
glGenTextures(1, &i->texture); glGenTextures(1, &i->texture);
#endif
} }
void SHImage_dtor(SHImage *i) void SHImage_dtor(SHImage *i)
@ -481,15 +474,10 @@ void SHImage_dtor(SHImage *i)
if (i->data != NULL) if (i->data != NULL)
free(i->data); free(i->data);
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
if (glIsTexture(i->texture)) if (glIsTexture(i->texture))
glDeleteTextures(1, &i->texture); glDeleteTextures(1, &i->texture);
#endif
} }
#ifndef SH_NO_IMAGE
/*-------------------------------------------------------- /*--------------------------------------------------------
* Finds appropriate OpenGL texture size for the size of * Finds appropriate OpenGL texture size for the size of
* the given image * the given image
@ -531,7 +519,6 @@ void shUpdateImageTexture(SHImage *i, VGContext *c)
i->texwidth, i->texheight, 0, i->texwidth, i->texheight, 0,
i->fd.glformat, i->fd.gltype, i->data); i->fd.glformat, i->fd.gltype, i->data);
} }
#endif // SH_NO_IMAGE
/*---------------------------------------------------------- /*----------------------------------------------------------
* Creates a new image object and returns the handle to it * Creates a new image object and returns the handle to it
@ -541,10 +528,6 @@ VG_API_CALL VGImage vgCreateImage(VGImageFormat format,
VGint width, VGint height, VGint width, VGint height,
VGbitfield allowedQuality) VGbitfield allowedQuality)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
return VG_INVALID_HANDLE;
#else
SHImage *i = NULL; SHImage *i = NULL;
SHImageFormatDesc fd; SHImageFormatDesc fd;
VG_GETCONTEXT(VG_INVALID_HANDLE); VG_GETCONTEXT(VG_INVALID_HANDLE);
@ -599,14 +582,10 @@ VG_API_CALL VGImage vgCreateImage(VGImageFormat format,
shImageArrayPushBack(&context->images, i); shImageArrayPushBack(&context->images, i);
VG_RETURN((VGImage)i); VG_RETURN((VGImage)i);
#endif // SH_NO_IMAGE
} }
VG_API_CALL void vgDestroyImage(VGImage image) VG_API_CALL void vgDestroyImage(VGImage image)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHint index; SHint index;
VG_GETCONTEXT(VG_NO_RETVAL); VG_GETCONTEXT(VG_NO_RETVAL);
@ -619,7 +598,6 @@ VG_API_CALL void vgDestroyImage(VGImage image)
shImageArrayRemoveAt(&context->images, index); shImageArrayRemoveAt(&context->images, index);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*--------------------------------------------------- /*---------------------------------------------------
@ -630,9 +608,6 @@ VG_API_CALL void vgDestroyImage(VGImage image)
VG_API_CALL void vgClearImage(VGImage image, VG_API_CALL void vgClearImage(VGImage image,
VGint x, VGint y, VGint width, VGint height) VGint x, VGint y, VGint width, VGint height)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHImage *i; SHImage *i;
SHColor clear; SHColor clear;
SHuint8 *data; SHuint8 *data;
@ -674,11 +649,8 @@ VG_API_CALL void vgClearImage(VGImage image,
shUpdateImageTexture(i, context); shUpdateImageTexture(i, context);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
#ifndef SH_NO_IMAGE
/*------------------------------------------------------------ /*------------------------------------------------------------
* Generic function for copying a rectangle area of pixels * Generic function for copying a rectangle area of pixels
* of size (width,height) among two data buffers. The size of * of size (width,height) among two data buffers. The size of
@ -789,8 +761,6 @@ void shCopyPixels(SHuint8 *dst, VGImageFormat dstFormat, SHint dstStride,
} }
} }
#endif // SH_NO_IMAGE
/*--------------------------------------------------------- /*---------------------------------------------------------
* Copies a rectangle area of pixels of size (width,height) * Copies a rectangle area of pixels of size (width,height)
* from given data buffer to image surface at destination * from given data buffer to image surface at destination
@ -802,9 +772,6 @@ VG_API_CALL void vgImageSubData(VGImage image,
VGImageFormat dataFormat, VGImageFormat dataFormat,
VGint x, VGint y, VGint width, VGint height) VGint x, VGint y, VGint width, VGint height)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHImage *i; SHImage *i;
VG_GETCONTEXT(VG_NO_RETVAL); VG_GETCONTEXT(VG_NO_RETVAL);
@ -836,7 +803,6 @@ VG_API_CALL void vgImageSubData(VGImage image,
shUpdateImageTexture(i, context); shUpdateImageTexture(i, context);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*--------------------------------------------------------- /*---------------------------------------------------------
@ -851,9 +817,6 @@ VG_API_CALL void vgGetImageSubData(VGImage image,
VGint x, VGint y, VGint x, VGint y,
VGint width, VGint height) VGint width, VGint height)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHImage *i; SHImage *i;
VG_GETCONTEXT(VG_NO_RETVAL); VG_GETCONTEXT(VG_NO_RETVAL);
@ -884,7 +847,6 @@ VG_API_CALL void vgGetImageSubData(VGImage image,
0,0,x,x,width,height); 0,0,x,x,width,height);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*---------------------------------------------------------- /*----------------------------------------------------------
@ -898,9 +860,6 @@ VG_API_CALL void vgCopyImage(VGImage dst, VGint dx, VGint dy,
VGint width, VGint height, VGint width, VGint height,
VGboolean dither) VGboolean dither)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHImage *s, *d; SHImage *s, *d;
SHuint8 *pixels; SHuint8 *pixels;
@ -941,7 +900,6 @@ VG_API_CALL void vgCopyImage(VGImage dst, VGint dx, VGint dy,
shUpdateImageTexture(d, context); shUpdateImageTexture(d, context);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*--------------------------------------------------------- /*---------------------------------------------------------
@ -954,9 +912,6 @@ VG_API_CALL void vgSetPixels(VGint dx, VGint dy,
VGImage src, VGint sx, VGint sy, VGImage src, VGint sx, VGint sy,
VGint width, VGint height) VGint width, VGint height)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHImage *i; SHImage *i;
SHuint8 *pixels; SHuint8 *pixels;
SHImageFormatDesc winfd; SHImageFormatDesc winfd;
@ -1001,7 +956,6 @@ VG_API_CALL void vgSetPixels(VGint dx, VGint dy,
free(pixels); free(pixels);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*--------------------------------------------------------- /*---------------------------------------------------------
@ -1015,9 +969,6 @@ VG_API_CALL void vgWritePixels(const void * data, VGint dataStride,
VGint dx, VGint dy, VGint dx, VGint dy,
VGint width, VGint height) VGint width, VGint height)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHuint8 *pixels; SHuint8 *pixels;
SHImageFormatDesc winfd; SHImageFormatDesc winfd;
@ -1067,7 +1018,6 @@ VG_API_CALL void vgWritePixels(const void * data, VGint dataStride,
free(pixels); free(pixels);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*----------------------------------------------------------- /*-----------------------------------------------------------
@ -1080,9 +1030,6 @@ VG_API_CALL void vgGetPixels(VGImage dst, VGint dx, VGint dy,
VGint sx, VGint sy, VGint sx, VGint sy,
VGint width, VGint height) VGint width, VGint height)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHImage *i; SHImage *i;
SHuint8 *pixels; SHuint8 *pixels;
SHImageFormatDesc winfd; SHImageFormatDesc winfd;
@ -1121,7 +1068,6 @@ VG_API_CALL void vgGetPixels(VGImage dst, VGint dx, VGint dy,
shUpdateImageTexture(i, context); shUpdateImageTexture(i, context);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*----------------------------------------------------------- /*-----------------------------------------------------------
@ -1135,9 +1081,6 @@ VG_API_CALL void vgReadPixels(void * data, VGint dataStride,
VGint sx, VGint sy, VGint sx, VGint sy,
VGint width, VGint height) VGint width, VGint height)
{ {
#ifdef SH_NO_IMAGE
printf("ShaderVG: images not supported!");
#else
SHuint8 *pixels; SHuint8 *pixels;
SHImageFormatDesc winfd; SHImageFormatDesc winfd;
VG_GETCONTEXT(VG_NO_RETVAL); VG_GETCONTEXT(VG_NO_RETVAL);
@ -1179,7 +1122,6 @@ VG_API_CALL void vgReadPixels(void * data, VGint dataStride,
free(pixels); free(pixels);
VG_RETURN(VG_NO_RETVAL); VG_RETURN(VG_NO_RETVAL);
#endif // SH_NO_IMAGE
} }
/*---------------------------------------------------------- /*----------------------------------------------------------

View File

@ -37,9 +37,6 @@
#define _ARRAY_DEFINE #define _ARRAY_DEFINE
#include "shArrayBase.h" #include "shArrayBase.h"
// We currently do not use gradients which need textures, so disable them to
// prevent freeing resources outside the correct OpenGL thread/context.
#define SH_NO_PAINT_TEXTURE
void SHPaint_ctor(SHPaint *p) void SHPaint_ctor(SHPaint *p)
{ {
@ -56,16 +53,12 @@ void SHPaint_ctor(SHPaint *p)
for (i=0; i<5; ++i) p->radialGradient[i] = 0.0f; for (i=0; i<5; ++i) p->radialGradient[i] = 0.0f;
p->pattern = VG_INVALID_HANDLE; p->pattern = VG_INVALID_HANDLE;
#ifndef SH_NO_PAINT_TEXTURE
glGenTextures(1, &p->texture); glGenTextures(1, &p->texture);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glBindTexture(GL_TEXTURE_2D, p->texture); glBindTexture(GL_TEXTURE_2D, p->texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SH_GRADIENT_TEX_WIDTH, SH_GRADIENT_TEX_HEIGHT, 0, glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SH_GRADIENT_TEX_WIDTH, SH_GRADIENT_TEX_HEIGHT, 0,
GL_RGBA, GL_FLOAT, NULL); GL_RGBA, GL_FLOAT, NULL);
GL_CEHCK_ERROR; GL_CEHCK_ERROR;
#else
p->texture = 0;
#endif
} }
void SHPaint_dtor(SHPaint *p) void SHPaint_dtor(SHPaint *p)
@ -73,10 +66,8 @@ void SHPaint_dtor(SHPaint *p)
SH_DEINITOBJ(SHStopArray, p->instops); SH_DEINITOBJ(SHStopArray, p->instops);
SH_DEINITOBJ(SHStopArray, p->stops); SH_DEINITOBJ(SHStopArray, p->stops);
#ifndef SH_NO_PAINT_TEXTURE
if (glIsTexture(p->texture)) if (glIsTexture(p->texture))
glDeleteTextures(1, &p->texture); glDeleteTextures(1, &p->texture);
#endif
} }
VG_API_CALL VGPaint vgCreatePaint(void) VG_API_CALL VGPaint vgCreatePaint(void)
@ -155,7 +146,6 @@ VG_API_CALL void vgPaintPattern(VGPaint paint, VGImage pattern)
void shUpdateColorRampTexture(SHPaint *p) void shUpdateColorRampTexture(SHPaint *p)
{ {
#ifndef SH_NO_PAINT_TEXTURE
SHint s=0; SHint s=0;
SHStop *stop1, *stop2; SHStop *stop1, *stop2;
SHfloat rgba[SH_GRADIENT_TEX_COORDSIZE]; SHfloat rgba[SH_GRADIENT_TEX_COORDSIZE];
@ -199,9 +189,6 @@ void shUpdateColorRampTexture(SHPaint *p)
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, i, SH_GRADIENT_TEX_WIDTH, 1, GL_RGBA, GL_FLOAT, rgba); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, i, SH_GRADIENT_TEX_WIDTH, 1, GL_RGBA, GL_FLOAT, rgba);
GL_CEHCK_ERROR; GL_CEHCK_ERROR;
#else
printf("ShaderVG: gradients not supported!");
#endif
} }
void shValidateInputStops(SHPaint *p) void shValidateInputStops(SHPaint *p)
@ -363,7 +350,6 @@ void shGenerateStops(SHPaint *p, SHfloat minOffset, SHfloat maxOffset,
void shSetGradientTexGLState(SHPaint *p) void shSetGradientTexGLState(SHPaint *p)
{ {
#ifndef SH_NO_PAINT_TEXTURE
glBindTexture(GL_TEXTURE_2D, p->texture); glBindTexture(GL_TEXTURE_2D, p->texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@ -376,9 +362,6 @@ void shSetGradientTexGLState(SHPaint *p)
case VG_COLOR_RAMP_SPREAD_REFLECT: case VG_COLOR_RAMP_SPREAD_REFLECT:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT); break; glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT); break;
} }
#else
printf("ShaderVG: gradients not supported!");
#endif
} }
void shSetPatternTexGLState(SHPaint *p, VGContext *c) void shSetPatternTexGLState(SHPaint *p, VGContext *c)

View File

@ -390,7 +390,7 @@ VG_API_CALL void vgDrawPath(VGPath path, VGbitfield paintModes)
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
glDisable(GL_STENCIL_TEST); glDisable(GL_STENCIL_TEST);
// glDisable(GL_BLEND); // glDisable(GL_BLEND);
#if 0 #if 0
}else{ }else{
/* Simulate thin stroke by alpha */ /* Simulate thin stroke by alpha */
@ -418,7 +418,7 @@ VG_API_CALL void vgDrawImage(VGImage image)
SHImage *i; SHImage *i;
SHfloat mgl[16]; SHfloat mgl[16];
SHPaint *fill; SHPaint *fill;
SHVector2 min, max; //SHVector2 min, max;
SHRectangle *rect; SHRectangle *rect;
VG_GETCONTEXT(VG_NO_RETVAL); VG_GETCONTEXT(VG_NO_RETVAL);

View File

@ -23,6 +23,7 @@
#cmakedefine GCC_ATOMIC_BUILTINS_FOUND #cmakedefine GCC_ATOMIC_BUILTINS_FOUND
#cmakedefine OPENVG
#cmakedefine SYSTEM_EXPAT #cmakedefine SYSTEM_EXPAT
#cmakedefine ENABLE_SOUND #cmakedefine ENABLE_SOUND
#cmakedefine USE_AEONWAVE #cmakedefine USE_AEONWAVE