Added win32 DLL support everywhere

Build is now entirely possible from a fresh QtSDK install,
with no external dependency.
This commit is contained in:
Michaël Lemaire 2013-10-20 16:47:59 +02:00
parent 6ab664485a
commit e82e0c47bd
50 changed files with 627 additions and 500 deletions

View file

@ -6,22 +6,11 @@ QT += core gui opengl
TARGET = paysages-gui TARGET = paysages-gui
unix:LIBS += -lGLU unix:LIBS += -lGLU
win32:LIBS += ../../libpaysages.a
CONFIG(release, debug|release): DEFINES += NDEBUG CONFIG(release, debug|release): DEFINES += NDEBUG
INCLUDEPATH += $$PWD/.. INCLUDEPATH += $$PWD/..
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../exploring/release/ -lpaysages_exploring
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../exploring/debug/ -lpaysages_exploring
else:unix: LIBS += -L$$OUT_PWD/../exploring/ -lpaysages_exploring
DEPENDPATH += $$PWD/../exploring
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../rendering/release/ -lpaysages_rendering
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../rendering/debug/ -lpaysages_rendering
else:unix: LIBS += -L$$OUT_PWD/../rendering/ -lpaysages_rendering
DEPENDPATH += $$PWD/../rendering
HEADERS += \ HEADERS += \
terrain/widgetheightmap.h \ terrain/widgetheightmap.h \
widgetexplorer.h \ widgetexplorer.h \
@ -160,3 +149,16 @@ else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../system/debug/ -l
else:unix: LIBS += -L$$OUT_PWD/../system/ -lpaysages_system else:unix: LIBS += -L$$OUT_PWD/../system/ -lpaysages_system
INCLUDEPATH += $$PWD/../system INCLUDEPATH += $$PWD/../system
DEPENDPATH += $$PWD/../system DEPENDPATH += $$PWD/../system
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../exploring/release/ -lpaysages_exploring
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../exploring/debug/ -lpaysages_exploring
else:unix: LIBS += -L$$OUT_PWD/../exploring/ -lpaysages_exploring
INCLUDEPATH += $$PWD/../exploring
DEPENDPATH += $$PWD/../exploring
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../rendering/release/ -lpaysages_rendering
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../rendering/debug/ -lpaysages_rendering
else:unix: LIBS += -L$$OUT_PWD/../rendering/ -lpaysages_rendering
INCLUDEPATH += $$PWD/../rendering
DEPENDPATH += $$PWD/../rendering

View file

@ -1,14 +1,35 @@
QT += opengl QT += opengl
TEMPLATE = lib TEMPLATE = lib
CONFIG += console
TARGET = paysages_exploring TARGET = paysages_exploring
DEFINES += EXPLORING_LIBRARY
CONFIG(release, debug|release): DEFINES += NDEBUG CONFIG(release, debug|release): DEFINES += NDEBUG
INCLUDEPATH += $$PWD/.. INCLUDEPATH += $$PWD/..
SOURCES += main.c SOURCES += main.c
HEADERS += main.h HEADERS += main.h \
exploring_global.h
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
target.path = /usr/lib
}
INSTALLS += target
}
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../rendering/release/ -lpaysages_rendering
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../rendering/debug/ -lpaysages_rendering
else:unix: LIBS += -L$$OUT_PWD/../rendering/ -lpaysages_rendering
INCLUDEPATH += $$PWD/../rendering
DEPENDPATH += $$PWD/../rendering
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../system/release/ -lpaysages_system
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../system/debug/ -lpaysages_system
else:unix: LIBS += -L$$OUT_PWD/../system/ -lpaysages_system
INCLUDEPATH += $$PWD/../system
DEPENDPATH += $$PWD/../system

View file

@ -0,0 +1,26 @@
#ifndef EXPLORING_GLOBAL_H
#define EXPLORING_GLOBAL_H
/* Shared object helpers */
#ifdef __cplusplus
# include <QtCore/qglobal.h>
#else
# if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
# define Q_DECL_EXPORT __declspec(dllexport)
# define Q_DECL_IMPORT __declspec(dllimport)
# else
# define Q_DECL_EXPORT
# define Q_DECL_IMPORT
# endif
#endif
#if defined(EXPLORING_LIBRARY)
# define EXPLORINGSHARED_EXPORT Q_DECL_EXPORT
#else
# define EXPLORINGSHARED_EXPORT Q_DECL_IMPORT
#endif
/* Namespace using */
/* Global import */
#endif // EXPLORING_GLOBAL_H

View file

@ -2,6 +2,7 @@
#include <math.h> #include <math.h>
#include "GL/gl.h" #include "GL/gl.h"
#include "GL/glu.h"
void exploringInit() void exploringInit()
{ {

View file

@ -1,6 +1,8 @@
#ifndef _PAYSAGES_EXPLORING_MAIN_H_ #ifndef _PAYSAGES_EXPLORING_MAIN_H_
#define _PAYSAGES_EXPLORING_MAIN_H_ #define _PAYSAGES_EXPLORING_MAIN_H_
#include "exploring_global.h"
#include "rendering/renderer.h" #include "rendering/renderer.h"
#include "rendering/camera.h" #include "rendering/camera.h"
@ -8,12 +10,12 @@
extern "C" { extern "C" {
#endif #endif
void exploringInit(); EXPLORINGSHARED_EXPORT void exploringInit();
void exploringSetViewPort(int width, int height, CameraDefinition* camera); EXPLORINGSHARED_EXPORT void exploringSetViewPort(int width, int height, CameraDefinition* camera);
void exploringRenderFrame(Renderer* renderer); EXPLORINGSHARED_EXPORT void exploringRenderFrame(Renderer* renderer);
void exploringStartStandAlone(); EXPLORINGSHARED_EXPORT void exploringStartStandAlone();
void exploringInterruptStandAlone(); EXPLORINGSHARED_EXPORT void exploringInterruptStandAlone();
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -6,11 +6,12 @@ SUBDIRS = \
rendering \ rendering \
exploring \ exploring \
editing \ editing \
controlling \ controlling
testing
unix:SUBDIRS += testing
rendering.depends = system rendering.depends = system
exploring.depends = rendering exploring.depends = rendering
editing.depends = exploring rendering editing.depends = exploring rendering
controlling.depends = rendering controlling.depends = rendering
testing.depends = rendering unix:testing.depends = rendering

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_ATMOSPHERE_PUBLIC_H_ #ifndef _PAYSAGES_ATMOSPHERE_PUBLIC_H_
#define _PAYSAGES_ATMOSPHERE_PUBLIC_H_ #define _PAYSAGES_ATMOSPHERE_PUBLIC_H_
#include "../rendering_global.h"
#include "../tools/lighting.h" #include "../tools/lighting.h"
#include "../tools/euclid.h" #include "../tools/euclid.h"
#include "../tools/color.h" #include "../tools/color.h"
@ -66,18 +67,18 @@ typedef struct
/*void* _internal_data;*/ /*void* _internal_data;*/
} AtmosphereRenderer; } AtmosphereRenderer;
extern StandardDefinition AtmosphereDefinitionClass; RENDERINGSHARED_EXPORT extern StandardDefinition AtmosphereDefinitionClass;
extern StandardRenderer AtmosphereRendererClass; RENDERINGSHARED_EXPORT extern StandardRenderer AtmosphereRendererClass;
void atmosphereAutoPreset(AtmosphereDefinition* definition, AtmospherePreset preset); RENDERINGSHARED_EXPORT void atmosphereAutoPreset(AtmosphereDefinition* definition, AtmospherePreset preset);
void atmosphereRenderSkydome(Renderer* renderer); RENDERINGSHARED_EXPORT void atmosphereRenderSkydome(Renderer* renderer);
void atmosphereInitResult(AtmosphereResult* result); RENDERINGSHARED_EXPORT void atmosphereInitResult(AtmosphereResult* result);
void atmosphereUpdateResult(AtmosphereResult* result); RENDERINGSHARED_EXPORT void atmosphereUpdateResult(AtmosphereResult* result);
Renderer* atmosphereCreatePreviewRenderer(); RENDERINGSHARED_EXPORT Renderer* atmosphereCreatePreviewRenderer();
Color atmosphereGetPreview(Renderer* renderer, double x, double y, double heading); RENDERINGSHARED_EXPORT Color atmosphereGetPreview(Renderer* renderer, double x, double y, double heading);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_CAMERA_H_ #ifndef _PAYSAGES_CAMERA_H_
#define _PAYSAGES_CAMERA_H_ #define _PAYSAGES_CAMERA_H_
#include "rendering_global.h"
#include "tools/pack.h" #include "tools/pack.h"
#include "tools/euclid.h" #include "tools/euclid.h"
#include "tools/boundingbox.h" #include "tools/boundingbox.h"
@ -20,48 +21,48 @@ typedef struct
double zfar; double zfar;
} CameraPerspective; } CameraPerspective;
void cameraSave(PackStream* stream, CameraDefinition* camera); RENDERINGSHARED_EXPORT void cameraSave(PackStream* stream, CameraDefinition* camera);
void cameraLoad(PackStream* stream, CameraDefinition* camera); RENDERINGSHARED_EXPORT void cameraLoad(PackStream* stream, CameraDefinition* camera);
CameraDefinition* cameraCreateDefinition(); RENDERINGSHARED_EXPORT CameraDefinition* cameraCreateDefinition();
void cameraDeleteDefinition(CameraDefinition* definition); RENDERINGSHARED_EXPORT void cameraDeleteDefinition(CameraDefinition* definition);
void cameraCopyDefinition(CameraDefinition* source, CameraDefinition* destination); RENDERINGSHARED_EXPORT void cameraCopyDefinition(CameraDefinition* source, CameraDefinition* destination);
void cameraValidateDefinition(CameraDefinition* definition, int check_above); RENDERINGSHARED_EXPORT void cameraValidateDefinition(CameraDefinition* definition, int check_above);
Vector3 cameraGetLocation(CameraDefinition* camera); RENDERINGSHARED_EXPORT Vector3 cameraGetLocation(CameraDefinition* camera);
Vector3 cameraGetTarget(CameraDefinition* camera); RENDERINGSHARED_EXPORT Vector3 cameraGetTarget(CameraDefinition* camera);
Vector3 cameraGetUpVector(CameraDefinition* camera); RENDERINGSHARED_EXPORT Vector3 cameraGetUpVector(CameraDefinition* camera);
double cameraGetRoll(CameraDefinition* camera); RENDERINGSHARED_EXPORT double cameraGetRoll(CameraDefinition* camera);
Vector3 cameraGetDirection(CameraDefinition* camera); RENDERINGSHARED_EXPORT Vector3 cameraGetDirection(CameraDefinition* camera);
Vector3 cameraGetDirectionNormalized(CameraDefinition* camera); RENDERINGSHARED_EXPORT Vector3 cameraGetDirectionNormalized(CameraDefinition* camera);
VectorSpherical cameraGetDirectionSpherical(CameraDefinition* camera); RENDERINGSHARED_EXPORT VectorSpherical cameraGetDirectionSpherical(CameraDefinition* camera);
CameraPerspective cameraGetPerspective(CameraDefinition* camera); RENDERINGSHARED_EXPORT CameraPerspective cameraGetPerspective(CameraDefinition* camera);
double cameraGetRealDepth(CameraDefinition* camera, Vector3 projected); RENDERINGSHARED_EXPORT double cameraGetRealDepth(CameraDefinition* camera, Vector3 projected);
void cameraSetLocation(CameraDefinition* camera, Vector3 location); RENDERINGSHARED_EXPORT void cameraSetLocation(CameraDefinition* camera, Vector3 location);
void cameraSetLocationCoords(CameraDefinition* camera, double x, double y, double z); RENDERINGSHARED_EXPORT void cameraSetLocationCoords(CameraDefinition* camera, double x, double y, double z);
void cameraSetTarget(CameraDefinition* camera, Vector3 target); RENDERINGSHARED_EXPORT void cameraSetTarget(CameraDefinition* camera, Vector3 target);
void cameraSetTargetCoords(CameraDefinition* camera, double x, double y, double z); RENDERINGSHARED_EXPORT void cameraSetTargetCoords(CameraDefinition* camera, double x, double y, double z);
void cameraSetRoll(CameraDefinition* camera, double angle); RENDERINGSHARED_EXPORT void cameraSetRoll(CameraDefinition* camera, double angle);
void cameraSetZoomToTarget(CameraDefinition* camera, double zoom); RENDERINGSHARED_EXPORT void cameraSetZoomToTarget(CameraDefinition* camera, double zoom);
void cameraStrafeForward(CameraDefinition* camera, double value); RENDERINGSHARED_EXPORT void cameraStrafeForward(CameraDefinition* camera, double value);
void cameraStrafeRight(CameraDefinition* camera, double value); RENDERINGSHARED_EXPORT void cameraStrafeRight(CameraDefinition* camera, double value);
void cameraStrafeUp(CameraDefinition* camera, double value); RENDERINGSHARED_EXPORT void cameraStrafeUp(CameraDefinition* camera, double value);
void cameraRotateYaw(CameraDefinition* camera, double value); RENDERINGSHARED_EXPORT void cameraRotateYaw(CameraDefinition* camera, double value);
void cameraRotatePitch(CameraDefinition* camera, double value); RENDERINGSHARED_EXPORT void cameraRotatePitch(CameraDefinition* camera, double value);
void cameraRotateRoll(CameraDefinition* camera, double value); RENDERINGSHARED_EXPORT void cameraRotateRoll(CameraDefinition* camera, double value);
void cameraSetRenderSize(CameraDefinition* camera, int width, int height); RENDERINGSHARED_EXPORT void cameraSetRenderSize(CameraDefinition* camera, int width, int height);
Vector3 cameraProject(CameraDefinition* camera, Vector3 point); RENDERINGSHARED_EXPORT Vector3 cameraProject(CameraDefinition* camera, Vector3 point);
Vector3 cameraUnproject(CameraDefinition* camera, Vector3 point); RENDERINGSHARED_EXPORT Vector3 cameraUnproject(CameraDefinition* camera, Vector3 point);
/*void cameraPushOverlay(CameraDefinition* camera, Color col, f_RenderFragmentCallback callback);*/ /*void cameraPushOverlay(CameraDefinition* camera, Color col, f_RenderFragmentCallback callback);*/
int cameraIsBoxInView(CameraDefinition* camera, Vector3 center, double xsize, double ysize, double zsize); RENDERINGSHARED_EXPORT int cameraIsBoxInView(CameraDefinition* camera, Vector3 center, double xsize, double ysize, double zsize);
int cameraIsUnprojectedBoxInView(CameraDefinition* camera, BoundingBox* box); RENDERINGSHARED_EXPORT int cameraIsUnprojectedBoxInView(CameraDefinition* camera, BoundingBox* box);
int cameraIsProjectedBoxInView(CameraDefinition* camera, BoundingBox* box); RENDERINGSHARED_EXPORT int cameraIsProjectedBoxInView(CameraDefinition* camera, BoundingBox* box);
int cameraTransitionToAnother(CameraDefinition* current, CameraDefinition* wanted, double factor); RENDERINGSHARED_EXPORT int cameraTransitionToAnother(CameraDefinition* current, CameraDefinition* wanted, double factor);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -18,7 +18,7 @@ extern "C"
* 0.0 means no cloud is present. * 0.0 means no cloud is present.
* 1.0 means full layer. * 1.0 means full layer.
*/ */
double cloudsGetLayerCoverage(CloudsLayerDefinition* layer, Vector3 location); RENDERINGSHARED_EXPORT double cloudsGetLayerCoverage(CloudsLayerDefinition* layer, Vector3 location);
/** /**
* Get the global density of a cloud layer at a given point [0.0;1.0]. * Get the global density of a cloud layer at a given point [0.0;1.0].
@ -26,22 +26,22 @@ double cloudsGetLayerCoverage(CloudsLayerDefinition* layer, Vector3 location);
* 0.0 means no cloud is present. * 0.0 means no cloud is present.
* 1.0 means full density (deep inside cloud). * 1.0 means full density (deep inside cloud).
*/ */
double cloudsGetLayerDensity(CloudsLayerDefinition* layer, Vector3 location, double coverage); RENDERINGSHARED_EXPORT double cloudsGetLayerDensity(CloudsLayerDefinition* layer, Vector3 location, double coverage);
/** /**
* Get the local density of a cloud layer at a given point inside an edge [0.0;1.0]. * Get the local density of a cloud layer at a given point inside an edge [0.0;1.0].
*/ */
double cloudsGetEdgeDensity(CloudsLayerDefinition* layer, Vector3 location, double layer_density); RENDERINGSHARED_EXPORT double cloudsGetEdgeDensity(CloudsLayerDefinition* layer, Vector3 location, double layer_density);
/* /*
* Bind fake density functions to a renderer. * Bind fake density functions to a renderer.
*/ */
void cloudsBindFakeDensityToRenderer(CloudsRenderer* renderer); RENDERINGSHARED_EXPORT void cloudsBindFakeDensityToRenderer(CloudsRenderer* renderer);
/* /*
* Bind real density functions to a renderer. * Bind real density functions to a renderer.
*/ */
void cloudsBindRealDensityToRenderer(CloudsRenderer* renderer); RENDERINGSHARED_EXPORT void cloudsBindRealDensityToRenderer(CloudsRenderer* renderer);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,3 +1,4 @@
#include "clo_preview.h"
#include "private.h" #include "private.h"
#include "../tools/euclid.h" #include "../tools/euclid.h"

View file

@ -13,13 +13,13 @@ extern "C"
{ {
#endif #endif
Renderer* cloudsPreviewCoverageCreateRenderer(); RENDERINGSHARED_EXPORT Renderer* cloudsPreviewCoverageCreateRenderer();
void cloudsPreviewCoverageBindLayer(Renderer* renderer, CloudsLayerDefinition* layer); RENDERINGSHARED_EXPORT void cloudsPreviewCoverageBindLayer(Renderer* renderer, CloudsLayerDefinition* layer);
Color cloudsPreviewCoverageGetPixel(Renderer* renderer, double x, double y, double scaling, int perspective); RENDERINGSHARED_EXPORT Color cloudsPreviewCoverageGetPixel(Renderer* renderer, double x, double y, double scaling, int perspective);
Renderer* cloudsPreviewMaterialCreateRenderer(); RENDERINGSHARED_EXPORT Renderer* cloudsPreviewMaterialCreateRenderer();
void cloudsPreviewMaterialBindLayer(Renderer* renderer, CloudsLayerDefinition* layer); RENDERINGSHARED_EXPORT void cloudsPreviewMaterialBindLayer(Renderer* renderer, CloudsLayerDefinition* layer);
Color cloudsPreviewMaterialGetPixel(Renderer* renderer, double x, double y); RENDERINGSHARED_EXPORT Color cloudsPreviewMaterialGetPixel(Renderer* renderer, double x, double y);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -51,7 +51,7 @@ typedef void (*FuncCloudsWalkingCallback)(CloudsWalker* walker);
* @param end End of the search to optimize * @param end End of the search to optimize
* @return 0 if the search is useless * @return 0 if the search is useless
*/ */
int cloudsOptimizeWalkingBounds(CloudsLayerDefinition* layer, Vector3* start, Vector3* end); RENDERINGSHARED_EXPORT int cloudsOptimizeWalkingBounds(CloudsLayerDefinition* layer, Vector3* start, Vector3* end);
/** /**
* Create a cloud walker. * Create a cloud walker.
@ -62,14 +62,14 @@ int cloudsOptimizeWalkingBounds(CloudsLayerDefinition* layer, Vector3* start, Ve
* @param start Start of the walk * @param start Start of the walk
* @param end End of the walk * @param end End of the walk
*/ */
CloudsWalker* cloudsCreateWalker(Renderer* renderer, CloudsLayerDefinition* layer, Vector3 start, Vector3 end); RENDERINGSHARED_EXPORT CloudsWalker* cloudsCreateWalker(Renderer* renderer, CloudsLayerDefinition* layer, Vector3 start, Vector3 end);
/** /**
* Delete a cloud walker. * Delete a cloud walker.
* *
* @param walker The walker to free * @param walker The walker to free
*/ */
void cloudsDeleteWalker(CloudsWalker* walker); RENDERINGSHARED_EXPORT void cloudsDeleteWalker(CloudsWalker* walker);
/** /**
* Define the segment size for next steps. * Define the segment size for next steps.
@ -77,7 +77,7 @@ void cloudsDeleteWalker(CloudsWalker* walker);
* @param walker The walker to configure * @param walker The walker to configure
* @param step The step length, negative for automatic * @param step The step length, negative for automatic
*/ */
void cloudsWalkerSetStepSize(CloudsWalker* walker, double step); RENDERINGSHARED_EXPORT void cloudsWalkerSetStepSize(CloudsWalker* walker, double step);
/** /**
* Set the void skipping mode. * Set the void skipping mode.
@ -85,7 +85,7 @@ void cloudsWalkerSetStepSize(CloudsWalker* walker, double step);
* @param walker The walker to configure * @param walker The walker to configure
* @param enabled 1 to enable the void skipping, 0 to disable * @param enabled 1 to enable the void skipping, 0 to disable
*/ */
void cloudsWalkerSetVoidSkipping(CloudsWalker* walker, int enabled); RENDERINGSHARED_EXPORT void cloudsWalkerSetVoidSkipping(CloudsWalker* walker, int enabled);
/** /**
* Toggle the local density computing. * Toggle the local density computing.
@ -95,7 +95,7 @@ void cloudsWalkerSetVoidSkipping(CloudsWalker* walker, int enabled);
* @param walker The walker to configure * @param walker The walker to configure
* @param enabled 1 to enable local density, 0 to disable it, -1 for automatic setting. * @param enabled 1 to enable local density, 0 to disable it, -1 for automatic setting.
*/ */
void cloudsWalkerToggleLocalDensity(CloudsWalker* walker, int enabled); RENDERINGSHARED_EXPORT void cloudsWalkerToggleLocalDensity(CloudsWalker* walker, int enabled);
/** /**
* Perform a single step. * Perform a single step.
@ -103,14 +103,14 @@ void cloudsWalkerToggleLocalDensity(CloudsWalker* walker, int enabled);
* @param walker The walker to use * @param walker The walker to use
* @return 1 to continue the loop, 0 to stop * @return 1 to continue the loop, 0 to stop
*/ */
int cloudsWalkerPerformStep(CloudsWalker* walker); RENDERINGSHARED_EXPORT int cloudsWalkerPerformStep(CloudsWalker* walker);
/** /**
* Order the walker to stop. * Order the walker to stop.
* *
* @param walker The walker to use * @param walker The walker to use
*/ */
void cloudsWalkerOrderStop(CloudsWalker* walker); RENDERINGSHARED_EXPORT void cloudsWalkerOrderStop(CloudsWalker* walker);
/** /**
* Order the walker to refine the search for cloud entry or exit. * Order the walker to refine the search for cloud entry or exit.
@ -121,7 +121,7 @@ void cloudsWalkerOrderStop(CloudsWalker* walker);
* @param walker The walker to use * @param walker The walker to use
* @param precision Precision wanted for the refinement * @param precision Precision wanted for the refinement
*/ */
void cloudsWalkerOrderRefine(CloudsWalker* walker, double precision); RENDERINGSHARED_EXPORT void cloudsWalkerOrderRefine(CloudsWalker* walker, double precision);
/** /**
* Order the walker to subdivide the previous segment in smaller segments. * Order the walker to subdivide the previous segment in smaller segments.
@ -131,14 +131,14 @@ void cloudsWalkerOrderRefine(CloudsWalker* walker, double precision);
* @param walker The walker to use * @param walker The walker to use
* @param max_segments Maximal number of segments * @param max_segments Maximal number of segments
*/ */
void cloudsWalkerOrderSubdivide(CloudsWalker* walker, double max_segments); RENDERINGSHARED_EXPORT void cloudsWalkerOrderSubdivide(CloudsWalker* walker, double max_segments);
/** /**
* Get the last segment information. * Get the last segment information.
* *
* @param walker The walker to use * @param walker The walker to use
*/ */
CloudWalkerStepInfo* cloudsWalkerGetLastSegment(CloudsWalker* walker); RENDERINGSHARED_EXPORT CloudWalkerStepInfo* cloudsWalkerGetLastSegment(CloudsWalker* walker);
/** /**
* Start walking automatically through a segment. * Start walking automatically through a segment.
@ -148,7 +148,7 @@ CloudWalkerStepInfo* cloudsWalkerGetLastSegment(CloudsWalker* walker);
* @param callback Callback to be called with each found segment * @param callback Callback to be called with each found segment
* @param data User data that will be passed back in the callback * @param data User data that will be passed back in the callback
*/ */
void cloudsStartWalking(CloudsWalker* walker, FuncCloudsWalkingCallback callback, void* data); RENDERINGSHARED_EXPORT void cloudsStartWalking(CloudsWalker* walker, FuncCloudsWalkingCallback callback, void* data);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_CLOUDS_PUBLIC_H_ #ifndef _PAYSAGES_CLOUDS_PUBLIC_H_
#define _PAYSAGES_CLOUDS_PUBLIC_H_ #define _PAYSAGES_CLOUDS_PUBLIC_H_
#include "../rendering_global.h"
#include "../shared/types.h" #include "../shared/types.h"
#include "../tools/lighting.h" #include "../tools/lighting.h"
#include "../tools/curve.h" #include "../tools/curve.h"
@ -74,13 +75,12 @@ typedef struct
} CloudsRenderer; } CloudsRenderer;
extern StandardDefinition CloudsDefinitionClass; RENDERINGSHARED_EXPORT extern StandardDefinition CloudsDefinitionClass;
extern StandardRenderer CloudsRendererClass; RENDERINGSHARED_EXPORT extern StandardRenderer CloudsRendererClass;
RENDERINGSHARED_EXPORT LayerType cloudsGetLayerType();
LayerType cloudsGetLayerType(); RENDERINGSHARED_EXPORT void cloudsAutoPreset(CloudsDefinition* definition, CloudsPreset preset);
void cloudsAutoPreset(CloudsDefinition* definition, CloudsPreset preset); RENDERINGSHARED_EXPORT void cloudsLayerAutoPreset(CloudsLayerDefinition* definition, CloudsLayerPreset preset);
void cloudsLayerAutoPreset(CloudsLayerDefinition* definition, CloudsLayerPreset preset);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -3,6 +3,7 @@
/* Geographic area definition */ /* Geographic area definition */
#include "rendering_global.h"
#include "tools/pack.h" #include "tools/pack.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -17,16 +18,16 @@ typedef struct
double size_z; double size_z;
} GeoArea; } GeoArea;
GeoArea geoareaCreate(); RENDERINGSHARED_EXPORT GeoArea geoareaCreate();
void geoareaDelete(GeoArea* geoarea); RENDERINGSHARED_EXPORT void geoareaDelete(GeoArea* geoarea);
void geoareaCopy(GeoArea* source, GeoArea* destination); RENDERINGSHARED_EXPORT void geoareaCopy(GeoArea* source, GeoArea* destination);
void geoareaValidate(GeoArea* geoarea); RENDERINGSHARED_EXPORT void geoareaValidate(GeoArea* geoarea);
void geoareaSave(PackStream* stream, GeoArea* geoarea); RENDERINGSHARED_EXPORT void geoareaSave(PackStream* stream, GeoArea* geoarea);
void geoareaLoad(PackStream* stream, GeoArea* geoarea); RENDERINGSHARED_EXPORT void geoareaLoad(PackStream* stream, GeoArea* geoarea);
void geoareaToLocal(GeoArea* geoarea, double absolute_x, double absolute_z, double* local_x, double* local_z); RENDERINGSHARED_EXPORT void geoareaToLocal(GeoArea* geoarea, double absolute_x, double absolute_z, double* local_x, double* local_z);
void geoareaFromLocal(GeoArea* geoarea, double local_x, double local_z, double* absolute_x, double* absolute_z); RENDERINGSHARED_EXPORT void geoareaFromLocal(GeoArea* geoarea, double local_x, double local_z, double* absolute_x, double* absolute_z);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -3,6 +3,7 @@
/* Factorized layer management (with names) */ /* Factorized layer management (with names) */
#include "rendering_global.h"
#include "tools/pack.h" #include "tools/pack.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -27,25 +28,25 @@ typedef struct {
typedef struct Layers Layers; typedef struct Layers Layers;
Layers* layersCreate(LayerType type, int max_layer_count); RENDERINGSHARED_EXPORT Layers* layersCreate(LayerType type, int max_layer_count);
Layers* layersCreateCopy(Layers* original); RENDERINGSHARED_EXPORT Layers* layersCreateCopy(Layers* original);
void layersDelete(Layers* layers); RENDERINGSHARED_EXPORT void layersDelete(Layers* layers);
void layersCopy(Layers* source, Layers* destination); RENDERINGSHARED_EXPORT void layersCopy(Layers* source, Layers* destination);
void layersValidate(Layers* layers); RENDERINGSHARED_EXPORT void layersValidate(Layers* layers);
void layersSave(PackStream* stream, Layers* layers); RENDERINGSHARED_EXPORT void layersSave(PackStream* stream, Layers* layers);
void layersLoad(PackStream* stream, Layers* layers); RENDERINGSHARED_EXPORT void layersLoad(PackStream* stream, Layers* layers);
const char* layersGetName(Layers* layers, int layer); RENDERINGSHARED_EXPORT const char* layersGetName(Layers* layers, int layer);
void layersSetName(Layers* layers, int layer, const char* name); RENDERINGSHARED_EXPORT void layersSetName(Layers* layers, int layer, const char* name);
void layersClear(Layers* layers); RENDERINGSHARED_EXPORT void layersClear(Layers* layers);
int layersCount(Layers* layers); RENDERINGSHARED_EXPORT int layersCount(Layers* layers);
void* layersGetLayer(Layers* layers, int layer); RENDERINGSHARED_EXPORT void* layersGetLayer(Layers* layers, int layer);
int layersAddLayer(Layers* layers, void* definition); RENDERINGSHARED_EXPORT int layersAddLayer(Layers* layers, void* definition);
void layersDeleteLayer(Layers* layers, int layer); RENDERINGSHARED_EXPORT void layersDeleteLayer(Layers* layers, int layer);
void layersMove(Layers* layers, int layer, int new_position); RENDERINGSHARED_EXPORT void layersMove(Layers* layers, int layer, int new_position);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -3,21 +3,23 @@
#define PAYSAGES_CURRENT_DATA_VERSION 1 #define PAYSAGES_CURRENT_DATA_VERSION 1
#include "rendering_global.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
typedef enum { typedef enum {
FILE_OPERATION_OK, FILE_OPERATION_OK,
FILE_OPERATION_IOERROR, FILE_OPERATION_IOERROR,
FILE_OPERATION_APP_MISMATCH, FILE_OPERATION_APP_MISMATCH,
FILE_OPERATION_VERSION_MISMATCH FILE_OPERATION_VERSION_MISMATCH
} FileOperationResult; } FileOperationResult;
void paysagesInit(); RENDERINGSHARED_EXPORT void paysagesInit();
void paysagesQuit(); RENDERINGSHARED_EXPORT void paysagesQuit();
FileOperationResult paysagesSave(char* filepath); RENDERINGSHARED_EXPORT FileOperationResult paysagesSave(char* filepath);
FileOperationResult paysagesLoad(char* filepath); RENDERINGSHARED_EXPORT FileOperationResult paysagesLoad(char* filepath);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_NOISE_H_ #ifndef _PAYSAGES_NOISE_H_
#define _PAYSAGES_NOISE_H_ #define _PAYSAGES_NOISE_H_
#include "rendering_global.h"
#include "tools/pack.h" #include "tools/pack.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -33,44 +34,44 @@ typedef struct
typedef struct NoiseGenerator NoiseGenerator; typedef struct NoiseGenerator NoiseGenerator;
void noiseInit(); RENDERINGSHARED_EXPORT void noiseInit();
void noiseQuit(); RENDERINGSHARED_EXPORT void noiseQuit();
void noiseSave(PackStream* stream); RENDERINGSHARED_EXPORT void noiseSave(PackStream* stream);
void noiseLoad(PackStream* stream); RENDERINGSHARED_EXPORT void noiseLoad(PackStream* stream);
NoiseGenerator* noiseCreateGenerator(); RENDERINGSHARED_EXPORT NoiseGenerator* noiseCreateGenerator();
void noiseDeleteGenerator(NoiseGenerator* generator); RENDERINGSHARED_EXPORT void noiseDeleteGenerator(NoiseGenerator* generator);
void noiseSaveGenerator(PackStream* stream, NoiseGenerator* generator); RENDERINGSHARED_EXPORT void noiseSaveGenerator(PackStream* stream, NoiseGenerator* generator);
void noiseLoadGenerator(PackStream* stream, NoiseGenerator* generator); RENDERINGSHARED_EXPORT void noiseLoadGenerator(PackStream* stream, NoiseGenerator* generator);
void noiseCopy(NoiseGenerator* source, NoiseGenerator* destination); RENDERINGSHARED_EXPORT void noiseCopy(NoiseGenerator* source, NoiseGenerator* destination);
void noiseValidate(NoiseGenerator* generator); RENDERINGSHARED_EXPORT void noiseValidate(NoiseGenerator* generator);
void noiseRandomizeOffsets(NoiseGenerator* generator); RENDERINGSHARED_EXPORT void noiseRandomizeOffsets(NoiseGenerator* generator);
NoiseFunction noiseGetFunction(NoiseGenerator* generator); RENDERINGSHARED_EXPORT NoiseFunction noiseGetFunction(NoiseGenerator* generator);
void noiseSetCustomFunction(NoiseGenerator* generator, double (*func1d)(double x), double (*func2d)(double x, double y), double (*func3d)(double x, double y, double z)); RENDERINGSHARED_EXPORT void noiseSetCustomFunction(NoiseGenerator* generator, double (*func1d)(double x), double (*func2d)(double x, double y), double (*func3d)(double x, double y, double z));
void noiseSetFunction(NoiseGenerator* generator, NoiseFunction* function); RENDERINGSHARED_EXPORT void noiseSetFunction(NoiseGenerator* generator, NoiseFunction* function);
void noiseSetFunctionParams(NoiseGenerator* generator, NoiseFunctionAlgorithm algorithm, double ridge_factor, double curve_factor); RENDERINGSHARED_EXPORT void noiseSetFunctionParams(NoiseGenerator* generator, NoiseFunctionAlgorithm algorithm, double ridge_factor, double curve_factor);
void noiseForceValue(NoiseGenerator* generator, double value); RENDERINGSHARED_EXPORT void noiseForceValue(NoiseGenerator* generator, double value);
void noiseGetRange(NoiseGenerator* generator, double* minvalue, double* maxvalue); RENDERINGSHARED_EXPORT void noiseGetRange(NoiseGenerator* generator, double* minvalue, double* maxvalue);
int noiseGetLevelCount(NoiseGenerator* generator); RENDERINGSHARED_EXPORT int noiseGetLevelCount(NoiseGenerator* generator);
void noiseClearLevels(NoiseGenerator* generator); RENDERINGSHARED_EXPORT void noiseClearLevels(NoiseGenerator* generator);
void noiseAddLevel(NoiseGenerator* generator, NoiseLevel level, int protect_offsets); RENDERINGSHARED_EXPORT void noiseAddLevel(NoiseGenerator* generator, NoiseLevel level, int protect_offsets);
void noiseAddLevelSimple(NoiseGenerator* generator, double scaling, double minvalue, double maxvalue); RENDERINGSHARED_EXPORT void noiseAddLevelSimple(NoiseGenerator* generator, double scaling, double minvalue, double maxvalue);
void noiseAddLevels(NoiseGenerator* generator, int level_count, NoiseLevel start_level, double scaling_factor, double amplitude_factor, double center_factor); RENDERINGSHARED_EXPORT void noiseAddLevels(NoiseGenerator* generator, int level_count, NoiseLevel start_level, double scaling_factor, double amplitude_factor, double center_factor);
void noiseAddLevelsSimple(NoiseGenerator* generator, int level_count, double scaling, double minvalue, double maxvalue, double center_factor); RENDERINGSHARED_EXPORT void noiseAddLevelsSimple(NoiseGenerator* generator, int level_count, double scaling, double minvalue, double maxvalue, double center_factor);
void noiseRemoveLevel(NoiseGenerator* generator, int level); RENDERINGSHARED_EXPORT void noiseRemoveLevel(NoiseGenerator* generator, int level);
int noiseGetLevel(NoiseGenerator* generator, int level, NoiseLevel* params); RENDERINGSHARED_EXPORT int noiseGetLevel(NoiseGenerator* generator, int level, NoiseLevel* params);
void noiseSetLevel(NoiseGenerator* generator, int index, NoiseLevel level, int protect_offsets); RENDERINGSHARED_EXPORT void noiseSetLevel(NoiseGenerator* generator, int index, NoiseLevel level, int protect_offsets);
void noiseSetLevelSimple(NoiseGenerator* generator, int index, double scaling, double minvalue, double maxvalue); RENDERINGSHARED_EXPORT void noiseSetLevelSimple(NoiseGenerator* generator, int index, double scaling, double minvalue, double maxvalue);
void noiseNormalizeAmplitude(NoiseGenerator* generator, double minvalue, double maxvalue, int adjust_scaling); RENDERINGSHARED_EXPORT void noiseNormalizeAmplitude(NoiseGenerator* generator, double minvalue, double maxvalue, int adjust_scaling);
double noiseGet1DLevel(NoiseGenerator* generator, int level, double x); RENDERINGSHARED_EXPORT double noiseGet1DLevel(NoiseGenerator* generator, int level, double x);
double noiseGet1DTotal(NoiseGenerator* generator, double x); RENDERINGSHARED_EXPORT double noiseGet1DTotal(NoiseGenerator* generator, double x);
double noiseGet1DDetail(NoiseGenerator* generator, double x, double detail); RENDERINGSHARED_EXPORT double noiseGet1DDetail(NoiseGenerator* generator, double x, double detail);
double noiseGet2DLevel(NoiseGenerator* generator, int level, double x, double y); RENDERINGSHARED_EXPORT double noiseGet2DLevel(NoiseGenerator* generator, int level, double x, double y);
double noiseGet2DTotal(NoiseGenerator* generator, double x, double y); RENDERINGSHARED_EXPORT double noiseGet2DTotal(NoiseGenerator* generator, double x, double y);
double noiseGet2DDetail(NoiseGenerator* generator, double x, double y, double detail); RENDERINGSHARED_EXPORT double noiseGet2DDetail(NoiseGenerator* generator, double x, double y, double detail);
double noiseGet3DLevel(NoiseGenerator* generator, int level, double x, double y, double z); RENDERINGSHARED_EXPORT double noiseGet3DLevel(NoiseGenerator* generator, int level, double x, double y, double z);
double noiseGet3DTotal(NoiseGenerator* generator, double x, double y, double z); RENDERINGSHARED_EXPORT double noiseGet3DTotal(NoiseGenerator* generator, double x, double y, double z);
double noiseGet3DDetail(NoiseGenerator* generator, double x, double y, double z, double detail); RENDERINGSHARED_EXPORT double noiseGet3DDetail(NoiseGenerator* generator, double x, double y, double z, double detail);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,19 +1,20 @@
#ifndef _PAYSAGES_NOISENAIVE_H_ #ifndef _PAYSAGES_NOISENAIVE_H_
#define _PAYSAGES_NOISENAIVE_H_ #define _PAYSAGES_NOISENAIVE_H_
#include "rendering_global.h"
#include "tools/pack.h" #include "tools/pack.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void noiseNaiveInit(); RENDERINGSHARED_EXPORT void noiseNaiveInit();
void noiseNaiveQuit(); RENDERINGSHARED_EXPORT void noiseNaiveQuit();
void noiseNaiveSave(PackStream* stream); RENDERINGSHARED_EXPORT void noiseNaiveSave(PackStream* stream);
void noiseNaiveLoad(PackStream* stream); RENDERINGSHARED_EXPORT void noiseNaiveLoad(PackStream* stream);
double noiseNaiveGet1DValue(double x); RENDERINGSHARED_EXPORT double noiseNaiveGet1DValue(double x);
double noiseNaiveGet2DValue(double x, double y); RENDERINGSHARED_EXPORT double noiseNaiveGet2DValue(double x, double y);
double noiseNaiveGet3DValue(double x, double y, double z); RENDERINGSHARED_EXPORT double noiseNaiveGet3DValue(double x, double y, double z);
/*double noiseNaiveGet4DValue(double x, double y, double z, double w);*/ /*double noiseNaiveGet4DValue(double x, double y, double z, double w);*/
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -1,14 +1,16 @@
#ifndef _PAYSAGES_NOISEPERLIN_H_ #ifndef _PAYSAGES_NOISEPERLIN_H_
#define _PAYSAGES_NOISEPERLIN_H_ #define _PAYSAGES_NOISEPERLIN_H_
#include "rendering_global.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void noisePerlinInit(); RENDERINGSHARED_EXPORT void noisePerlinInit();
double noisePerlinGet1DValue(double x); RENDERINGSHARED_EXPORT double noisePerlinGet1DValue(double x);
double noisePerlinGet2DValue(double x, double y); RENDERINGSHARED_EXPORT double noisePerlinGet2DValue(double x, double y);
double noisePerlinGet3DValue(double x, double y, double z); RENDERINGSHARED_EXPORT double noisePerlinGet3DValue(double x, double y, double z);
/*double noiseSimplexGet4DValue(double x, double y, double z, double w);*/ /*double noiseSimplexGet4DValue(double x, double y, double z, double w);*/
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -1,15 +1,17 @@
#ifndef _PAYSAGES_NOISESIMPLEX_H_ #ifndef _PAYSAGES_NOISESIMPLEX_H_
#define _PAYSAGES_NOISESIMPLEX_H_ #define _PAYSAGES_NOISESIMPLEX_H_
#include "rendering_global.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void noiseSimplexInit(); RENDERINGSHARED_EXPORT void noiseSimplexInit();
double noiseSimplexGet1DValue(double x); RENDERINGSHARED_EXPORT double noiseSimplexGet1DValue(double x);
double noiseSimplexGet2DValue(double x, double y); RENDERINGSHARED_EXPORT double noiseSimplexGet2DValue(double x, double y);
double noiseSimplexGet3DValue(double x, double y, double z); RENDERINGSHARED_EXPORT double noiseSimplexGet3DValue(double x, double y, double z);
double noiseSimplexGet4DValue(double x, double y, double z, double w); RENDERINGSHARED_EXPORT double noiseSimplexGet4DValue(double x, double y, double z, double w);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -3,15 +3,16 @@
/* OpenCL usage */ /* OpenCL usage */
#include "rendering_global.h"
#include "noise.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include "noise.h" RENDERINGSHARED_EXPORT void openclInit();
RENDERINGSHARED_EXPORT int openclAvailable();
void openclInit(); RENDERINGSHARED_EXPORT void openclQuit();
int openclAvailable();
void openclQuit();
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_RENDER_H_ #ifndef _PAYSAGES_RENDER_H_
#define _PAYSAGES_RENDER_H_ #define _PAYSAGES_RENDER_H_
#include "rendering_global.h"
#include "shared/types.h" #include "shared/types.h"
#include "tools/color.h" #include "tools/color.h"
#include "tools/euclid.h" #include "tools/euclid.h"
@ -25,25 +26,25 @@ typedef struct
int quality; int quality;
} RenderParams; } RenderParams;
void renderInit(); RENDERINGSHARED_EXPORT void renderInit();
void renderQuit(); RENDERINGSHARED_EXPORT void renderQuit();
RenderArea* renderCreateArea(Renderer* renderer); RENDERINGSHARED_EXPORT RenderArea* renderCreateArea(Renderer* renderer);
void renderDeleteArea(RenderArea* area); RENDERINGSHARED_EXPORT void renderDeleteArea(RenderArea* area);
void renderSetParams(RenderArea* area, RenderParams params); RENDERINGSHARED_EXPORT void renderSetParams(RenderArea* area, RenderParams params);
void renderSetToneMapping(RenderArea* area, ToneMappingOperator tonemapper, double exposure); RENDERINGSHARED_EXPORT void renderSetToneMapping(RenderArea* area, ToneMappingOperator tonemapper, double exposure);
void renderSetBackgroundColor(RenderArea* area, Color* col); RENDERINGSHARED_EXPORT void renderSetBackgroundColor(RenderArea* area, Color* col);
void renderClear(RenderArea* area); RENDERINGSHARED_EXPORT void renderClear(RenderArea* area);
void renderUpdate(RenderArea* area); RENDERINGSHARED_EXPORT void renderUpdate(RenderArea* area);
void renderPushTriangle(RenderArea* area, Vector3 pixel1, Vector3 pixel2, Vector3 pixel3, Vector3 location1, Vector3 location2, Vector3 location3, f_RenderFragmentCallback callback, void* callback_data); RENDERINGSHARED_EXPORT void renderPushTriangle(RenderArea* area, Vector3 pixel1, Vector3 pixel2, Vector3 pixel3, Vector3 location1, Vector3 location2, Vector3 location3, f_RenderFragmentCallback callback, void* callback_data);
Color renderGetPixel(RenderArea* area, int x, int y); RENDERINGSHARED_EXPORT Color renderGetPixel(RenderArea* area, int x, int y);
void renderPostProcess(RenderArea* area, int nbchunks); RENDERINGSHARED_EXPORT void renderPostProcess(RenderArea* area, int nbchunks);
int renderSaveToFile(RenderArea* area, const char* path); RENDERINGSHARED_EXPORT int renderSaveToFile(RenderArea* area, const char* path);
void renderSetPreviewCallbacks(RenderArea* area, RenderCallbackStart start, RenderCallbackDraw draw, RenderCallbackUpdate update); RENDERINGSHARED_EXPORT void renderSetPreviewCallbacks(RenderArea* area, RenderCallbackStart start, RenderCallbackDraw draw, RenderCallbackUpdate update);
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_RENDERER_H_ #ifndef _PAYSAGES_RENDERER_H_
#define _PAYSAGES_RENDERER_H_ #define _PAYSAGES_RENDERER_H_
#include "rendering_global.h"
#include "shared/types.h" #include "shared/types.h"
#include "atmosphere/public.h" #include "atmosphere/public.h"
#include "clouds/public.h" #include "clouds/public.h"
@ -60,11 +61,11 @@ struct Renderer
void* customData[10]; void* customData[10];
}; };
Renderer* rendererCreate(); RENDERINGSHARED_EXPORT Renderer* rendererCreate();
void rendererDelete(Renderer* renderer); RENDERINGSHARED_EXPORT void rendererDelete(Renderer* renderer);
void rendererSetPreviewCallbacks(Renderer* renderer, RenderCallbackStart start, RenderCallbackDraw draw, RenderCallbackUpdate update); RENDERINGSHARED_EXPORT void rendererSetPreviewCallbacks(Renderer* renderer, RenderCallbackStart start, RenderCallbackDraw draw, RenderCallbackUpdate update);
void rendererStart(Renderer* renderer, RenderParams params); RENDERINGSHARED_EXPORT void rendererStart(Renderer* renderer, RenderParams params);
void rendererInterrupt(Renderer* renderer); RENDERINGSHARED_EXPORT void rendererInterrupt(Renderer* renderer);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,14 +1,15 @@
TEMPLATE = lib
CONFIG += console CONFIG += console
CONFIG -= app_bundle CONFIG -= app_bundle
CONFIG -= qt CONFIG -= qt
TEMPLATE = lib
TARGET = paysages_rendering TARGET = paysages_rendering
INCLUDEPATH += $$PWD/.. DEFINES += RENDERING_LIBRARY
CONFIG(release, debug|release): DEFINES += NDEBUG CONFIG(release, debug|release): DEFINES += NDEBUG
INCLUDEPATH += $$PWD/..
SOURCES += main.c \ SOURCES += main.c \
tools.c \ tools.c \
system.c \ system.c \
@ -110,7 +111,8 @@ HEADERS += \
tools/boundingbox.h \ tools/boundingbox.h \
tools/array.h \ tools/array.h \
water/public.h \ water/public.h \
water/private.h water/private.h \
rendering_global.h
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../system/release/ -lpaysages_system win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../system/release/ -lpaysages_system
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../system/debug/ -lpaysages_system else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../system/debug/ -lpaysages_system

View file

@ -0,0 +1,26 @@
#ifndef RENDERING_GLOBAL_H
#define RENDERING_GLOBAL_H
/* Shared object helpers */
#ifdef __cplusplus
# include <QtCore/qglobal.h>
#else
# if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
# define Q_DECL_EXPORT __declspec(dllexport)
# define Q_DECL_IMPORT __declspec(dllimport)
# else
# define Q_DECL_EXPORT
# define Q_DECL_IMPORT
# endif
#endif
#if defined(RENDERING_LIBRARY)
# define RENDERINGSHARED_EXPORT Q_DECL_EXPORT
#else
# define RENDERINGSHARED_EXPORT Q_DECL_IMPORT
#endif
/* Namespace using */
/* Global import */
#endif // RENDERING_GLOBAL_H

View file

@ -8,6 +8,7 @@
* a standard renderer. * a standard renderer.
*/ */
#include "rendering_global.h"
#include "tools/pack.h" #include "tools/pack.h"
#include "atmosphere/public.h" #include "atmosphere/public.h"
#include "clouds/public.h" #include "clouds/public.h"
@ -23,38 +24,38 @@ extern "C" {
typedef void (*SceneryCustomDataCallback)(PackStream* stream, void* data); typedef void (*SceneryCustomDataCallback)(PackStream* stream, void* data);
void sceneryInit(); RENDERINGSHARED_EXPORT void sceneryInit();
void sceneryQuit(); RENDERINGSHARED_EXPORT void sceneryQuit();
void sceneryAutoPreset(int seed); RENDERINGSHARED_EXPORT void sceneryAutoPreset(int seed);
void scenerySetCustomDataCallback(SceneryCustomDataCallback callback_save, SceneryCustomDataCallback callback_load, void* data); RENDERINGSHARED_EXPORT void scenerySetCustomDataCallback(SceneryCustomDataCallback callback_save, SceneryCustomDataCallback callback_load, void* data);
void scenerySave(PackStream* stream); RENDERINGSHARED_EXPORT void scenerySave(PackStream* stream);
void sceneryLoad(PackStream* stream); RENDERINGSHARED_EXPORT void sceneryLoad(PackStream* stream);
void scenerySetAtmosphere(AtmosphereDefinition* atmosphere); RENDERINGSHARED_EXPORT void scenerySetAtmosphere(AtmosphereDefinition* atmosphere);
void sceneryGetAtmosphere(AtmosphereDefinition* atmosphere); RENDERINGSHARED_EXPORT void sceneryGetAtmosphere(AtmosphereDefinition* atmosphere);
void scenerySetCamera(CameraDefinition* camera); RENDERINGSHARED_EXPORT void scenerySetCamera(CameraDefinition* camera);
void sceneryGetCamera(CameraDefinition* camera); RENDERINGSHARED_EXPORT void sceneryGetCamera(CameraDefinition* camera);
void scenerySetClouds(CloudsDefinition* clouds); RENDERINGSHARED_EXPORT void scenerySetClouds(CloudsDefinition* clouds);
void sceneryGetClouds(CloudsDefinition* clouds); RENDERINGSHARED_EXPORT void sceneryGetClouds(CloudsDefinition* clouds);
void scenerySetTerrain(TerrainDefinition* terrain); RENDERINGSHARED_EXPORT void scenerySetTerrain(TerrainDefinition* terrain);
void sceneryGetTerrain(TerrainDefinition* terrain); RENDERINGSHARED_EXPORT void sceneryGetTerrain(TerrainDefinition* terrain);
TerrainDefinition* sceneryGetTerrainDirect(); RENDERINGSHARED_EXPORT TerrainDefinition* sceneryGetTerrainDirect();
void scenerySetTextures(TexturesDefinition* textures); RENDERINGSHARED_EXPORT void scenerySetTextures(TexturesDefinition* textures);
void sceneryGetTextures(TexturesDefinition* textures); RENDERINGSHARED_EXPORT void sceneryGetTextures(TexturesDefinition* textures);
void scenerySetWater(WaterDefinition* water); RENDERINGSHARED_EXPORT void scenerySetWater(WaterDefinition* water);
void sceneryGetWater(WaterDefinition* water); RENDERINGSHARED_EXPORT void sceneryGetWater(WaterDefinition* water);
Renderer* sceneryCreateStandardRenderer(); RENDERINGSHARED_EXPORT Renderer* sceneryCreateStandardRenderer();
void sceneryBindRenderer(Renderer* renderer); RENDERINGSHARED_EXPORT void sceneryBindRenderer(Renderer* renderer);
void sceneryRenderFirstPass(Renderer* renderer); RENDERINGSHARED_EXPORT void sceneryRenderFirstPass(Renderer* renderer);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -5,6 +5,7 @@
* Preview management. * Preview management.
*/ */
#include "../rendering_global.h"
#include "types.h" #include "types.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -28,7 +29,7 @@ typedef struct {
FuncPreviewGetPixelColor getPixelColor; FuncPreviewGetPixelColor getPixelColor;
} PreviewClass; } PreviewClass;
PreviewClass previewCreateClass(FuncPreviewCustomizeRenderer customizeRenderer, FuncPreviewBindDefinition bindDefinition, FuncPreviewGetPixelColor getPixelColor); RENDERINGSHARED_EXPORT PreviewClass previewCreateClass(FuncPreviewCustomizeRenderer customizeRenderer, FuncPreviewBindDefinition bindDefinition, FuncPreviewGetPixelColor getPixelColor);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -3,16 +3,17 @@
/* Library dependent features */ /* Library dependent features */
#include "rendering_global.h"
#include <stdlib.h> #include <stdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void systemInit(); RENDERINGSHARED_EXPORT void systemInit();
int systemGetCoreCount(); RENDERINGSHARED_EXPORT int systemGetCoreCount();
int systemGetFileSize(const char* path); RENDERINGSHARED_EXPORT int systemGetFileSize(const char* path);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TERRAIN_PUBLIC_H_ #ifndef _PAYSAGES_TERRAIN_PUBLIC_H_
#define _PAYSAGES_TERRAIN_PUBLIC_H_ #define _PAYSAGES_TERRAIN_PUBLIC_H_
#include "../rendering_global.h"
#include <stdlib.h> #include <stdlib.h>
#include "../shared/types.h" #include "../shared/types.h"
#include "../tools/color.h" #include "../tools/color.h"
@ -58,18 +59,18 @@ typedef struct
void* _internal_data; void* _internal_data;
} TerrainRenderer; } TerrainRenderer;
extern StandardDefinition TerrainDefinitionClass; RENDERINGSHARED_EXPORT extern StandardDefinition TerrainDefinitionClass;
extern StandardRenderer TerrainRendererClass; RENDERINGSHARED_EXPORT extern StandardRenderer TerrainRendererClass;
void terrainAutoPreset(TerrainDefinition* definition, TerrainPreset preset); RENDERINGSHARED_EXPORT void terrainAutoPreset(TerrainDefinition* definition, TerrainPreset preset);
double terrainGetGridHeight(TerrainDefinition* definition, int x, int z, int with_painting); RENDERINGSHARED_EXPORT double terrainGetGridHeight(TerrainDefinition* definition, int x, int z, int with_painting);
double terrainGetInterpolatedHeight(TerrainDefinition* definition, double x, double z, int scaled, int with_painting); RENDERINGSHARED_EXPORT double terrainGetInterpolatedHeight(TerrainDefinition* definition, double x, double z, int scaled, int with_painting);
size_t terrainGetMemoryStats(TerrainDefinition* definition); RENDERINGSHARED_EXPORT size_t terrainGetMemoryStats(TerrainDefinition* definition);
Renderer* terrainCreatePreviewRenderer(); RENDERINGSHARED_EXPORT Renderer* terrainCreatePreviewRenderer();
Color terrainGetPreviewColor(Renderer* renderer, double x, double z, double detail); RENDERINGSHARED_EXPORT Color terrainGetPreviewColor(Renderer* renderer, double x, double z, double detail);
HeightInfo terrainGetHeightInfo(TerrainDefinition* definition); RENDERINGSHARED_EXPORT HeightInfo terrainGetHeightInfo(TerrainDefinition* definition);
typedef struct typedef struct
{ {
@ -81,14 +82,14 @@ typedef struct
} TerrainBrush; } TerrainBrush;
/* Heightmap manipulation */ /* Heightmap manipulation */
int terrainIsPainted(TerrainHeightMap* heightmap, int x, int z); RENDERINGSHARED_EXPORT int terrainIsPainted(TerrainHeightMap* heightmap, int x, int z);
void terrainClearPainting(TerrainHeightMap* heightmap); RENDERINGSHARED_EXPORT void terrainClearPainting(TerrainHeightMap* heightmap);
void terrainBrushElevation(TerrainHeightMap* heightmap, TerrainBrush* brush, double value); RENDERINGSHARED_EXPORT void terrainBrushElevation(TerrainHeightMap* heightmap, TerrainBrush* brush, double value);
void terrainBrushSmooth(TerrainHeightMap* heightmap, TerrainBrush* brush, double value); RENDERINGSHARED_EXPORT void terrainBrushSmooth(TerrainHeightMap* heightmap, TerrainBrush* brush, double value);
void terrainBrushAddNoise(TerrainHeightMap* heightmap, TerrainBrush* brush, NoiseGenerator* generator, double value); RENDERINGSHARED_EXPORT void terrainBrushAddNoise(TerrainHeightMap* heightmap, TerrainBrush* brush, NoiseGenerator* generator, double value);
void terrainBrushReset(TerrainHeightMap* heightmap, TerrainBrush* brush, double value); RENDERINGSHARED_EXPORT void terrainBrushReset(TerrainHeightMap* heightmap, TerrainBrush* brush, double value);
void terrainBrushFlatten(TerrainHeightMap* heightmap, TerrainBrush* brush, double height, double force); RENDERINGSHARED_EXPORT void terrainBrushFlatten(TerrainHeightMap* heightmap, TerrainBrush* brush, double height, double force);
void terrainEndBrushStroke(TerrainHeightMap* heightmap); RENDERINGSHARED_EXPORT void terrainEndBrushStroke(TerrainHeightMap* heightmap);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,8 @@
#ifndef _RENDERING_TERRAIN_RASTER_H_ #ifndef _RENDERING_TERRAIN_RASTER_H_
#define _RENDERING_TERRAIN_RASTER_H_ #define _RENDERING_TERRAIN_RASTER_H_
#include "../rendering_global.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -21,19 +23,19 @@ typedef int (*FuncTerrainTessellationCallback)(Renderer* renderer, TerrainChunkI
* *
* The terrain will be broken in chunks, most detailed near the camera. * The terrain will be broken in chunks, most detailed near the camera.
*/ */
void terrainGetTessellationInfo(Renderer* renderer, FuncTerrainTessellationCallback callback, int displaced); RENDERINGSHARED_EXPORT void terrainGetTessellationInfo(Renderer* renderer, FuncTerrainTessellationCallback callback, int displaced);
/** /**
* Tessellate a terrain chunk, pushing the quads in the render area. * Tessellate a terrain chunk, pushing the quads in the render area.
*/ */
void terrainTessellateChunk(Renderer* renderer, TerrainChunkInfo* chunk, int detail); RENDERINGSHARED_EXPORT void terrainTessellateChunk(Renderer* renderer, TerrainChunkInfo* chunk, int detail);
/** /**
* Start the final rasterization of terrain. * Start the final rasterization of terrain.
* *
* This will push the rasterized quads in the render area, waiting for post process. * This will push the rasterized quads in the render area, waiting for post process.
*/ */
void terrainRenderSurface(Renderer* renderer); RENDERINGSHARED_EXPORT void terrainRenderSurface(Renderer* renderer);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TEXTURES_PUBLIC_H_ #ifndef _PAYSAGES_TEXTURES_PUBLIC_H_
#define _PAYSAGES_TEXTURES_PUBLIC_H_ #define _PAYSAGES_TEXTURES_PUBLIC_H_
#include "../rendering_global.h"
#include "rendering/layers.h" #include "rendering/layers.h"
#include "rendering/tools/zone.h" #include "rendering/tools/zone.h"
#include "rendering/tools/lighting.h" #include "rendering/tools/lighting.h"
@ -89,15 +90,15 @@ typedef struct
} TexturesRenderer; } TexturesRenderer;
extern StandardDefinition TexturesDefinitionClass; RENDERINGSHARED_EXPORT extern StandardDefinition TexturesDefinitionClass;
extern StandardRenderer TexturesRendererClass; RENDERINGSHARED_EXPORT extern StandardRenderer TexturesRendererClass;
LayerType texturesGetLayerType(); RENDERINGSHARED_EXPORT LayerType texturesGetLayerType();
void texturesAutoPreset(TexturesDefinition* definition, TexturesPreset preset); RENDERINGSHARED_EXPORT void texturesAutoPreset(TexturesDefinition* definition, TexturesPreset preset);
void texturesLayerAutoPreset(TexturesLayerDefinition* definition, TexturesLayerPreset preset); RENDERINGSHARED_EXPORT void texturesLayerAutoPreset(TexturesLayerDefinition* definition, TexturesLayerPreset preset);
double texturesGetMaximalDisplacement(TexturesDefinition* textures); RENDERINGSHARED_EXPORT double texturesGetMaximalDisplacement(TexturesDefinition* textures);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -9,16 +9,16 @@ extern "C" {
#include "rendering/textures/public.h" #include "rendering/textures/public.h"
/* Single layer coverage */ /* Single layer coverage */
void TexturesPreviewLayerCoverage_bind(Renderer* renderer, TexturesDefinition* definition); RENDERINGSHARED_EXPORT void TexturesPreviewLayerCoverage_bind(Renderer* renderer, TexturesDefinition* definition);
Color TexturesPreviewLayerCoverage_getColor(Renderer* renderer, double x, double y, double scaling, int layer); RENDERINGSHARED_EXPORT Color TexturesPreviewLayerCoverage_getColor(Renderer* renderer, double x, double y, double scaling, int layer);
/* Single layer look */ /* Single layer look */
void TexturesPreviewLayerLook_bind(Renderer* renderer, TexturesDefinition* definition); RENDERINGSHARED_EXPORT void TexturesPreviewLayerLook_bind(Renderer* renderer, TexturesDefinition* definition);
Color TexturesPreviewLayerLook_getColor(Renderer* renderer, double x, double y, double scaling, int layer); RENDERINGSHARED_EXPORT Color TexturesPreviewLayerLook_getColor(Renderer* renderer, double x, double y, double scaling, int layer);
/* Cumulative color preview */ /* Cumulative color preview */
void TexturesPreviewCumul_bind(Renderer* renderer, TexturesDefinition* definition); RENDERINGSHARED_EXPORT void TexturesPreviewCumul_bind(Renderer* renderer, TexturesDefinition* definition);
Color TexturesPreviewCumul_getColor(Renderer* renderer, double x, double y, double scaling, int layer); RENDERINGSHARED_EXPORT Color TexturesPreviewCumul_getColor(Renderer* renderer, double x, double y, double scaling, int layer);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_H_ #ifndef _PAYSAGES_TOOLS_H_
#define _PAYSAGES_TOOLS_H_ #define _PAYSAGES_TOOLS_H_
#include "rendering_global.h"
#include "shared/types.h" #include "shared/types.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -9,10 +10,10 @@ extern "C" {
#define UNUSED(_x_) ((void)(_x_)) #define UNUSED(_x_) ((void)(_x_))
double toolsRandom(); RENDERINGSHARED_EXPORT double toolsRandom();
double toolsCubicInterpolate(double stencil[4], double x); RENDERINGSHARED_EXPORT double toolsCubicInterpolate(double stencil[4], double x);
double toolsBicubicInterpolate(double stencil[16], double x, double y); RENDERINGSHARED_EXPORT double toolsBicubicInterpolate(double stencil[16], double x, double y);
void toolsFloat2DMapCopy(double* src, double* dest, int src_xstart, int src_ystart, int dest_xstart, int dest_ystart, int xsize, int ysize, int src_xstep, int src_ystep, int dest_xstep, int dest_ystep); RENDERINGSHARED_EXPORT void toolsFloat2DMapCopy(double* src, double* dest, int src_xstart, int src_ystart, int dest_xstart, int dest_ystart, int xsize, int ysize, int src_xstep, int src_ystep, int dest_xstep, int dest_ystep);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_ARRAY_H_ #ifndef _PAYSAGES_TOOLS_ARRAY_H_
#define _PAYSAGES_TOOLS_ARRAY_H_ #define _PAYSAGES_TOOLS_ARRAY_H_
#include "../rendering_global.h"
#include "../shared/types.h" #include "../shared/types.h"
#include <stdlib.h> #include <stdlib.h>
@ -13,7 +14,7 @@ extern "C" {
/* /*
* Insert an item at a given position, rallocating the array, moving data and returning a pointer to the inserted element. * Insert an item at a given position, rallocating the array, moving data and returning a pointer to the inserted element.
*/ */
void* naiveArrayInsert(void** array, size_t item_size, int item_count, int location); RENDERINGSHARED_EXPORT void* naiveArrayInsert(void** array, size_t item_size, int item_count, int location);
/**************** Array object ****************/ /**************** Array object ****************/
@ -26,13 +27,13 @@ typedef struct
void* data; void* data;
} Array; } Array;
void arrayCreate(Array* array, int item_size); RENDERINGSHARED_EXPORT void arrayCreate(Array* array, int item_size);
void arrayDelete(Array* array); RENDERINGSHARED_EXPORT void arrayDelete(Array* array);
void* arrayAppend(Array* array, void* item); RENDERINGSHARED_EXPORT void* arrayAppend(Array* array, void* item);
void arrayInsert(Array* array, void* item, int position); RENDERINGSHARED_EXPORT void arrayInsert(Array* array, void* item, int position);
void arrayReplace(Array* array, void* item, int position); RENDERINGSHARED_EXPORT void arrayReplace(Array* array, void* item, int position);
void arrayLStrip(Array* array, int count); RENDERINGSHARED_EXPORT void arrayLStrip(Array* array, int count);
void arrayClear(Array* array); RENDERINGSHARED_EXPORT void arrayClear(Array* array);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _RENDERING_TOOLS_BOUNDINGBOX_H_ #ifndef _RENDERING_TOOLS_BOUNDINGBOX_H_
#define _RENDERING_TOOLS_BOUNDINGBOX_H_ #define _RENDERING_TOOLS_BOUNDINGBOX_H_
#include "../rendering_global.h"
#include "euclid.h" #include "euclid.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -18,8 +19,8 @@ typedef struct
double zmax; double zmax;
} BoundingBox; } BoundingBox;
void boundingBoxReset(BoundingBox* box); RENDERINGSHARED_EXPORT void boundingBoxReset(BoundingBox* box);
void boundingBoxPushPoint(BoundingBox* box, Vector3 point); RENDERINGSHARED_EXPORT void boundingBoxPushPoint(BoundingBox* box, Vector3 point);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -5,17 +5,19 @@
* Cache management. * Cache management.
*/ */
#include "../rendering_global.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
typedef struct CacheFile CacheFile; typedef struct CacheFile CacheFile;
CacheFile* cacheFileCreateAccessor(const char* module, const char* ext, const char* tag1, int tag2, int tag3, int tag4, int tag5, int tag6); RENDERINGSHARED_EXPORT CacheFile* cacheFileCreateAccessor(const char* module, const char* ext, const char* tag1, int tag2, int tag3, int tag4, int tag5, int tag6);
void cacheFileDeleteAccessor(CacheFile* cache); RENDERINGSHARED_EXPORT void cacheFileDeleteAccessor(CacheFile* cache);
int cacheFileIsReadable(CacheFile* cache); RENDERINGSHARED_EXPORT int cacheFileIsReadable(CacheFile* cache);
int cacheFileIsWritable(CacheFile* cache); RENDERINGSHARED_EXPORT int cacheFileIsWritable(CacheFile* cache);
const char* cacheFileGetPath(CacheFile* cache); RENDERINGSHARED_EXPORT const char* cacheFileGetPath(CacheFile* cache);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_COLOR_H_ #ifndef _PAYSAGES_TOOLS_COLOR_H_
#define _PAYSAGES_TOOLS_COLOR_H_ #define _PAYSAGES_TOOLS_COLOR_H_
#include "../rendering_global.h"
#include "curve.h" #include "curve.h"
#include "pack.h" #include "pack.h"
@ -17,35 +18,35 @@ typedef struct
double a; double a;
} Color; } Color;
extern Color COLOR_TRANSPARENT; RENDERINGSHARED_EXPORT extern Color COLOR_TRANSPARENT;
extern Color COLOR_BLACK; RENDERINGSHARED_EXPORT extern Color COLOR_BLACK;
extern Color COLOR_RED; RENDERINGSHARED_EXPORT extern Color COLOR_RED;
extern Color COLOR_GREEN; RENDERINGSHARED_EXPORT extern Color COLOR_GREEN;
extern Color COLOR_BLUE; RENDERINGSHARED_EXPORT extern Color COLOR_BLUE;
extern Color COLOR_WHITE; RENDERINGSHARED_EXPORT extern Color COLOR_WHITE;
extern Color COLOR_GREY; RENDERINGSHARED_EXPORT extern Color COLOR_GREY;
/* Color */ /* Color */
void colorSave(PackStream* stream, Color* col); RENDERINGSHARED_EXPORT void colorSave(PackStream* stream, Color* col);
void colorLoad(PackStream* stream, Color* col); RENDERINGSHARED_EXPORT void colorLoad(PackStream* stream, Color* col);
Color colorFromValues(double r, double g, double b, double a); RENDERINGSHARED_EXPORT Color colorFromValues(double r, double g, double b, double a);
unsigned int colorTo32BitRGBA(Color* col); RENDERINGSHARED_EXPORT unsigned int colorTo32BitRGBA(Color* col);
unsigned int colorTo32BitBGRA(Color* col); RENDERINGSHARED_EXPORT unsigned int colorTo32BitBGRA(Color* col);
unsigned int colorTo32BitARGB(Color* col); RENDERINGSHARED_EXPORT unsigned int colorTo32BitARGB(Color* col);
unsigned int colorTo32BitABGR(Color* col); RENDERINGSHARED_EXPORT unsigned int colorTo32BitABGR(Color* col);
Color colorFrom32BitRGBA(unsigned int col); RENDERINGSHARED_EXPORT Color colorFrom32BitRGBA(unsigned int col);
Color colorFrom32BitBGRA(unsigned int col); RENDERINGSHARED_EXPORT Color colorFrom32BitBGRA(unsigned int col);
Color colorFrom32BitARGB(unsigned int col); RENDERINGSHARED_EXPORT Color colorFrom32BitARGB(unsigned int col);
Color colorFrom32BitABGR(unsigned int col); RENDERINGSHARED_EXPORT Color colorFrom32BitABGR(unsigned int col);
void colorMask(Color* base, Color* mask); RENDERINGSHARED_EXPORT void colorMask(Color* base, Color* mask);
double colorNormalize(Color* col); RENDERINGSHARED_EXPORT double colorNormalize(Color* col);
double colorGetValue(Color* col); RENDERINGSHARED_EXPORT double colorGetValue(Color* col);
double colorGetPower(Color* col); RENDERINGSHARED_EXPORT double colorGetPower(Color* col);
void colorLimitPower(Color* col, double max_power); RENDERINGSHARED_EXPORT void colorLimitPower(Color* col, double max_power);
/* HDR profile for tone-mapping */ /* HDR profile for tone-mapping */
typedef struct ColorProfile ColorProfile; typedef struct ColorProfile ColorProfile;
@ -56,41 +57,41 @@ typedef enum
TONE_MAPPING_CLAMP TONE_MAPPING_CLAMP
} ToneMappingOperator; } ToneMappingOperator;
ColorProfile* colorProfileCreate(); RENDERINGSHARED_EXPORT ColorProfile* colorProfileCreate();
void colorProfileDelete(ColorProfile* profile); RENDERINGSHARED_EXPORT void colorProfileDelete(ColorProfile* profile);
void colorProfileSetToneMapping(ColorProfile* profile, ToneMappingOperator tonemapper, double exposure); RENDERINGSHARED_EXPORT void colorProfileSetToneMapping(ColorProfile* profile, ToneMappingOperator tonemapper, double exposure);
void colorProfileSave(PackStream* stream, ColorProfile* profile); RENDERINGSHARED_EXPORT void colorProfileSave(PackStream* stream, ColorProfile* profile);
void colorProfileLoad(PackStream* stream, ColorProfile* profile); RENDERINGSHARED_EXPORT void colorProfileLoad(PackStream* stream, ColorProfile* profile);
void colorProfileClear(ColorProfile* profile); RENDERINGSHARED_EXPORT void colorProfileClear(ColorProfile* profile);
int colorProfileCollect(ColorProfile* profile, Color pixel); RENDERINGSHARED_EXPORT int colorProfileCollect(ColorProfile* profile, Color pixel);
Color colorProfileApply(ColorProfile* profile, Color pixel); RENDERINGSHARED_EXPORT Color colorProfileApply(ColorProfile* profile, Color pixel);
/* ColorGradation */ /* ColorGradation */
typedef struct ColorGradation ColorGradation; typedef struct ColorGradation ColorGradation;
ColorGradation* colorGradationCreate(); RENDERINGSHARED_EXPORT ColorGradation* colorGradationCreate();
void colorGradationDelete(ColorGradation* gradation); RENDERINGSHARED_EXPORT void colorGradationDelete(ColorGradation* gradation);
void colorGradationCopy(ColorGradation* source, ColorGradation* destination); RENDERINGSHARED_EXPORT void colorGradationCopy(ColorGradation* source, ColorGradation* destination);
void colorGradationClear(ColorGradation* gradation); RENDERINGSHARED_EXPORT void colorGradationClear(ColorGradation* gradation);
void colorGradationSave(PackStream* stream, ColorGradation* gradation); RENDERINGSHARED_EXPORT void colorGradationSave(PackStream* stream, ColorGradation* gradation);
void colorGradationLoad(PackStream* stream, ColorGradation* gradation); RENDERINGSHARED_EXPORT void colorGradationLoad(PackStream* stream, ColorGradation* gradation);
void colorGradationGetRedCurve(ColorGradation* gradation, Curve* curve); RENDERINGSHARED_EXPORT void colorGradationGetRedCurve(ColorGradation* gradation, Curve* curve);
void colorGradationGetGreenCurve(ColorGradation* gradation, Curve* curve); RENDERINGSHARED_EXPORT void colorGradationGetGreenCurve(ColorGradation* gradation, Curve* curve);
void colorGradationGetBlueCurve(ColorGradation* gradation, Curve* curve); RENDERINGSHARED_EXPORT void colorGradationGetBlueCurve(ColorGradation* gradation, Curve* curve);
void colorGradationSetRedCurve(ColorGradation* gradation, Curve* curve); RENDERINGSHARED_EXPORT void colorGradationSetRedCurve(ColorGradation* gradation, Curve* curve);
void colorGradationSetGreenCurve(ColorGradation* gradation, Curve* curve); RENDERINGSHARED_EXPORT void colorGradationSetGreenCurve(ColorGradation* gradation, Curve* curve);
void colorGradationSetBlueCurve(ColorGradation* gradation, Curve* curve); RENDERINGSHARED_EXPORT void colorGradationSetBlueCurve(ColorGradation* gradation, Curve* curve);
void colorGradationQuickAdd(ColorGradation* gradation, double value, Color* col); RENDERINGSHARED_EXPORT void colorGradationQuickAdd(ColorGradation* gradation, double value, Color* col);
void colorGradationQuickAddRgb(ColorGradation* gradation, double value, double r, double g, double b); RENDERINGSHARED_EXPORT void colorGradationQuickAddRgb(ColorGradation* gradation, double value, double r, double g, double b);
Color colorGradationGet(ColorGradation* gradation, double value); RENDERINGSHARED_EXPORT Color colorGradationGet(ColorGradation* gradation, double value);
/* HSL color space */ /* HSL color space */
typedef struct typedef struct
@ -101,10 +102,10 @@ typedef struct
double a; double a;
} ColorHSL; } ColorHSL;
Color colorFromHSL(ColorHSL col); RENDERINGSHARED_EXPORT Color colorFromHSL(ColorHSL col);
ColorHSL colorToHSL(Color col); RENDERINGSHARED_EXPORT ColorHSL colorToHSL(Color col);
ColorHSL colorHSLFromValues(double h, double s, double l, double a); RENDERINGSHARED_EXPORT ColorHSL colorHSLFromValues(double h, double s, double l, double a);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_CURVE_H_ #ifndef _PAYSAGES_TOOLS_CURVE_H_
#define _PAYSAGES_TOOLS_CURVE_H_ #define _PAYSAGES_TOOLS_CURVE_H_
#include "../rendering_global.h"
#include "pack.h" #include "pack.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -13,24 +14,24 @@ typedef struct {
} CurvePoint; } CurvePoint;
typedef struct Curve Curve; typedef struct Curve Curve;
Curve* curveCreate(); RENDERINGSHARED_EXPORT Curve* curveCreate();
void curveDelete(Curve* curve); RENDERINGSHARED_EXPORT void curveDelete(Curve* curve);
void curveCopy(Curve* source, Curve* destination); RENDERINGSHARED_EXPORT void curveCopy(Curve* source, Curve* destination);
void curveSave(PackStream* stream, Curve* curve); RENDERINGSHARED_EXPORT void curveSave(PackStream* stream, Curve* curve);
void curveLoad(PackStream* stream, Curve* curve); RENDERINGSHARED_EXPORT void curveLoad(PackStream* stream, Curve* curve);
void curveClear(Curve* curve); RENDERINGSHARED_EXPORT void curveClear(Curve* curve);
void curveSetDefault(Curve* curve, double value); RENDERINGSHARED_EXPORT void curveSetDefault(Curve* curve, double value);
int curveAddPoint(Curve* curve, CurvePoint* point); RENDERINGSHARED_EXPORT int curveAddPoint(Curve* curve, CurvePoint* point);
int curveQuickAddPoint(Curve* curve, double position, double value); RENDERINGSHARED_EXPORT int curveQuickAddPoint(Curve* curve, double position, double value);
int curveGetPointCount(Curve* curve); RENDERINGSHARED_EXPORT int curveGetPointCount(Curve* curve);
void curveGetPoint(Curve* curve, int number, CurvePoint* point); RENDERINGSHARED_EXPORT void curveGetPoint(Curve* curve, int number, CurvePoint* point);
void curveSetPoint(Curve* curve, int number, CurvePoint* point); RENDERINGSHARED_EXPORT void curveSetPoint(Curve* curve, int number, CurvePoint* point);
void curveRemovePoint(Curve* curve, int number); RENDERINGSHARED_EXPORT void curveRemovePoint(Curve* curve, int number);
void curveValidate(Curve* curve); RENDERINGSHARED_EXPORT void curveValidate(Curve* curve);
double curveGetValue(Curve* curve, double position); RENDERINGSHARED_EXPORT double curveGetValue(Curve* curve, double position);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,10 +1,12 @@
#ifndef _PAYSAGES_TOOLS_DATA_H_ #ifndef _PAYSAGES_TOOLS_DATA_H_
#define _PAYSAGES_TOOLS_DATA_H_ #define _PAYSAGES_TOOLS_DATA_H_
#include "../rendering_global.h"
/* /*
* Data directory management. * Data directory management.
*/ */
int dataInit(); RENDERINGSHARED_EXPORT int dataInit();
#endif #endif

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_EUCLID_H_ #ifndef _PAYSAGES_TOOLS_EUCLID_H_
#define _PAYSAGES_TOOLS_EUCLID_H_ #define _PAYSAGES_TOOLS_EUCLID_H_
#include "../rendering_global.h"
#include "pack.h" #include "pack.h"
/* /*
@ -69,57 +70,57 @@ typedef struct
double p; double p;
} Matrix4; } Matrix4;
extern Vector3 VECTOR_ZERO; RENDERINGSHARED_EXPORT extern Vector3 VECTOR_ZERO;
extern Vector3 VECTOR_DOWN; RENDERINGSHARED_EXPORT extern Vector3 VECTOR_DOWN;
extern Vector3 VECTOR_UP; RENDERINGSHARED_EXPORT extern Vector3 VECTOR_UP;
extern Vector3 VECTOR_NORTH; RENDERINGSHARED_EXPORT extern Vector3 VECTOR_NORTH;
extern Vector3 VECTOR_SOUTH; RENDERINGSHARED_EXPORT extern Vector3 VECTOR_SOUTH;
extern Vector3 VECTOR_EAST; RENDERINGSHARED_EXPORT extern Vector3 VECTOR_EAST;
extern Vector3 VECTOR_WEST; RENDERINGSHARED_EXPORT extern Vector3 VECTOR_WEST;
static inline Vector3 v3(double x, double y, double z) static inline Vector3 v3(double x, double y, double z)
{ {
Vector3 result = {x, y, z}; Vector3 result = {x, y, z};
return result; return result;
}; };
void v3Save(PackStream* stream, Vector3* v); RENDERINGSHARED_EXPORT void v3Save(PackStream* stream, Vector3* v);
void v3Load(PackStream* stream, Vector3* v); RENDERINGSHARED_EXPORT void v3Load(PackStream* stream, Vector3* v);
Vector3 v3Translate(Vector3 v1, double x, double y, double z); RENDERINGSHARED_EXPORT Vector3 v3Translate(Vector3 v1, double x, double y, double z);
Vector3 v3Add(Vector3 v1, Vector3 v2); RENDERINGSHARED_EXPORT Vector3 v3Add(Vector3 v1, Vector3 v2);
Vector3 v3Sub(Vector3 v1, Vector3 v2); RENDERINGSHARED_EXPORT Vector3 v3Sub(Vector3 v1, Vector3 v2);
Vector3 v3Neg(Vector3 v); RENDERINGSHARED_EXPORT Vector3 v3Neg(Vector3 v);
Vector3 v3Scale(Vector3 v, double scale); RENDERINGSHARED_EXPORT Vector3 v3Scale(Vector3 v, double scale);
double v3Norm(Vector3 v); RENDERINGSHARED_EXPORT double v3Norm(Vector3 v);
Vector3 v3Normalize(Vector3 v); RENDERINGSHARED_EXPORT Vector3 v3Normalize(Vector3 v);
double v3Dot(Vector3 v1, Vector3 v2); RENDERINGSHARED_EXPORT double v3Dot(Vector3 v1, Vector3 v2);
Vector3 v3Cross(Vector3 v1, Vector3 v2); RENDERINGSHARED_EXPORT Vector3 v3Cross(Vector3 v1, Vector3 v2);
VectorSpherical v3ToSpherical(Vector3 v); RENDERINGSHARED_EXPORT VectorSpherical v3ToSpherical(Vector3 v);
Vector3 v3FromSpherical(VectorSpherical v); RENDERINGSHARED_EXPORT Vector3 v3FromSpherical(VectorSpherical v);
void m4Save(PackStream* stream, Matrix4* m); RENDERINGSHARED_EXPORT void m4Save(PackStream* stream, Matrix4* m);
void m4Load(PackStream* stream, Matrix4* m); RENDERINGSHARED_EXPORT void m4Load(PackStream* stream, Matrix4* m);
Matrix4 m4NewIdentity(); RENDERINGSHARED_EXPORT Matrix4 m4NewIdentity();
Matrix4 m4Mult(Matrix4 m1, Matrix4 m2); RENDERINGSHARED_EXPORT Matrix4 m4Mult(Matrix4 m1, Matrix4 m2);
Vector3 m4MultPoint(Matrix4 m, Vector3 v); RENDERINGSHARED_EXPORT Vector3 m4MultPoint(Matrix4 m, Vector3 v);
Vector3 m4Transform(Matrix4 m, Vector3 v); RENDERINGSHARED_EXPORT Vector3 m4Transform(Matrix4 m, Vector3 v);
Matrix4 m4Transpose(Matrix4 m); RENDERINGSHARED_EXPORT Matrix4 m4Transpose(Matrix4 m);
Matrix4 m4NewScale(double x, double y, double z); RENDERINGSHARED_EXPORT Matrix4 m4NewScale(double x, double y, double z);
Matrix4 m4NewTranslate(double x, double y, double z); RENDERINGSHARED_EXPORT Matrix4 m4NewTranslate(double x, double y, double z);
Matrix4 m4NewRotateX(double angle); RENDERINGSHARED_EXPORT Matrix4 m4NewRotateX(double angle);
Matrix4 m4NewRotateY(double angle); RENDERINGSHARED_EXPORT Matrix4 m4NewRotateY(double angle);
Matrix4 m4NewRotateZ(double angle); RENDERINGSHARED_EXPORT Matrix4 m4NewRotateZ(double angle);
Matrix4 m4NewRotateAxis(double angle, Vector3 axis); RENDERINGSHARED_EXPORT Matrix4 m4NewRotateAxis(double angle, Vector3 axis);
Matrix4 m4NewRotateEuler(double heading, double attitude, double bank); RENDERINGSHARED_EXPORT Matrix4 m4NewRotateEuler(double heading, double attitude, double bank);
Matrix4 m4NewRotateTripleAxis(Vector3 x, Vector3 y, Vector3 z); RENDERINGSHARED_EXPORT Matrix4 m4NewRotateTripleAxis(Vector3 x, Vector3 y, Vector3 z);
Matrix4 m4NewLookAt(Vector3 eye, Vector3 at, Vector3 up); RENDERINGSHARED_EXPORT Matrix4 m4NewLookAt(Vector3 eye, Vector3 at, Vector3 up);
Matrix4 m4NewPerspective(double fov_y, double aspect, double near, double far); RENDERINGSHARED_EXPORT Matrix4 m4NewPerspective(double fov_y, double aspect, double near, double far);
double m4Determinant(Matrix4 m); RENDERINGSHARED_EXPORT double m4Determinant(Matrix4 m);
Matrix4 m4Inverse(Matrix4 m); RENDERINGSHARED_EXPORT Matrix4 m4Inverse(Matrix4 m);
double euclidGet2DAngle(double x, double y); RENDERINGSHARED_EXPORT double euclidGet2DAngle(double x, double y);
Vector3 euclidGetNormalFromTriangle(Vector3 center, Vector3 bottom, Vector3 right); RENDERINGSHARED_EXPORT Vector3 euclidGetNormalFromTriangle(Vector3 center, Vector3 bottom, Vector3 right);
double euclidGetDistance2D(double x1, double y1, double x2, double y2); RENDERINGSHARED_EXPORT double euclidGetDistance2D(double x1, double y1, double x2, double y2);
int euclidRayIntersectSphere(Vector3 ray_point, Vector3 ray_direction, Vector3 sphere_center, double sphere_radius, Vector3* hit1, Vector3* hit2); RENDERINGSHARED_EXPORT int euclidRayIntersectSphere(Vector3 ray_point, Vector3 ray_direction, Vector3 sphere_center, double sphere_radius, Vector3* hit1, Vector3* hit2);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_LIGHTING_H_ #ifndef _PAYSAGES_TOOLS_LIGHTING_H_
#define _PAYSAGES_TOOLS_LIGHTING_H_ #define _PAYSAGES_TOOLS_LIGHTING_H_
#include "../rendering_global.h"
#include "euclid.h" #include "euclid.h"
#include "color.h" #include "color.h"
#include "pack.h" #include "pack.h"
@ -35,22 +36,22 @@ typedef int (*FuncLightingAlterLight)(void* data, LightDefinition* light, Vector
typedef struct LightingManager LightingManager; typedef struct LightingManager LightingManager;
typedef struct LightStatus LightStatus; typedef struct LightStatus LightStatus;
LightingManager* lightingManagerCreate(); RENDERINGSHARED_EXPORT LightingManager* lightingManagerCreate();
void lightingManagerDelete(LightingManager* filter); RENDERINGSHARED_EXPORT void lightingManagerDelete(LightingManager* filter);
void lightingManagerRegisterFilter(LightingManager* filter, FuncLightingAlterLight callback, void* data); RENDERINGSHARED_EXPORT void lightingManagerRegisterFilter(LightingManager* filter, FuncLightingAlterLight callback, void* data);
void lightingManagerDisableSpecularity(LightingManager* manager); RENDERINGSHARED_EXPORT void lightingManagerDisableSpecularity(LightingManager* manager);
LightStatus* lightingCreateStatus(LightingManager* manager, Vector3 location, Vector3 eye); RENDERINGSHARED_EXPORT LightStatus* lightingCreateStatus(LightingManager* manager, Vector3 location, Vector3 eye);
void lightingDeleteStatus(LightStatus* status); RENDERINGSHARED_EXPORT void lightingDeleteStatus(LightStatus* status);
void lightingPushLight(LightStatus* status, LightDefinition* light); RENDERINGSHARED_EXPORT void lightingPushLight(LightStatus* status, LightDefinition* light);
Color lightingApplyStatus(LightStatus* status, Vector3 normal, SurfaceMaterial* material); RENDERINGSHARED_EXPORT Color lightingApplyStatus(LightStatus* status, Vector3 normal, SurfaceMaterial* material);
Vector3 lightingGetStatusLocation(LightStatus* status); RENDERINGSHARED_EXPORT Vector3 lightingGetStatusLocation(LightStatus* status);
Color lightingApplyOneLight(LightDefinition* light, Vector3 eye, Vector3 location, Vector3 normal, SurfaceMaterial* material); RENDERINGSHARED_EXPORT Color lightingApplyOneLight(LightDefinition* light, Vector3 eye, Vector3 location, Vector3 normal, SurfaceMaterial* material);
void materialSave(PackStream* stream, SurfaceMaterial* material); RENDERINGSHARED_EXPORT void materialSave(PackStream* stream, SurfaceMaterial* material);
void materialLoad(PackStream* stream, SurfaceMaterial* material); RENDERINGSHARED_EXPORT void materialLoad(PackStream* stream, SurfaceMaterial* material);
void materialValidate(SurfaceMaterial* material); RENDERINGSHARED_EXPORT void materialValidate(SurfaceMaterial* material);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -5,12 +5,14 @@
* Memory tools. * Memory tools.
*/ */
#include "../rendering_global.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void* memory2dRealloc(void* data, int datasize, int oldxsize, int oldysize, int newxsize, int newysize, int xoffset, int yoffset); RENDERINGSHARED_EXPORT void* memory2dRealloc(void* data, int datasize, int oldxsize, int oldysize, int newxsize, int newysize, int xoffset, int yoffset);
void memory2dScrolling(void* data, int datasize, int xsize, int ysize, int xoffset, int yoffset); RENDERINGSHARED_EXPORT void memory2dScrolling(void* data, int datasize, int xsize, int ysize, int xoffset, int yoffset);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,22 +1,24 @@
#ifndef _PAYSAGES_TOOLS_PACK_H_ #ifndef _PAYSAGES_TOOLS_PACK_H_
#define _PAYSAGES_TOOLS_PACK_H_ #define _PAYSAGES_TOOLS_PACK_H_
#include "../rendering_global.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
typedef struct PackStream PackStream; typedef struct PackStream PackStream;
PackStream* packReadFile(const char* filepath); RENDERINGSHARED_EXPORT PackStream* packReadFile(const char* filepath);
PackStream* packWriteFile(const char* filepath); RENDERINGSHARED_EXPORT PackStream* packWriteFile(const char* filepath);
void packCloseStream(PackStream* stream); RENDERINGSHARED_EXPORT void packCloseStream(PackStream* stream);
void packWriteDouble(PackStream* stream, double* value); RENDERINGSHARED_EXPORT void packWriteDouble(PackStream* stream, double* value);
void packReadDouble(PackStream* stream, double* value); RENDERINGSHARED_EXPORT void packReadDouble(PackStream* stream, double* value);
void packWriteInt(PackStream* stream, int* value); RENDERINGSHARED_EXPORT void packWriteInt(PackStream* stream, int* value);
void packReadInt(PackStream* stream, int* value); RENDERINGSHARED_EXPORT void packReadInt(PackStream* stream, int* value);
void packWriteString(PackStream* stream, char* value, int max_length); RENDERINGSHARED_EXPORT void packWriteString(PackStream* stream, char* value, int max_length);
void packReadString(PackStream* stream, char* value, int max_length); RENDERINGSHARED_EXPORT void packReadString(PackStream* stream, char* value, int max_length);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,8 @@
#ifndef _PAYSAGES_TOOLS_PARALLEL_H_ #ifndef _PAYSAGES_TOOLS_PARALLEL_H_
#define _PAYSAGES_TOOLS_PARALLEL_H_ #define _PAYSAGES_TOOLS_PARALLEL_H_
#include "../rendering_global.h"
/* /*
* Parallel processing helpers. * Parallel processing helpers.
* *
@ -25,7 +27,7 @@ typedef int (*ParallelUnitFunction)(ParallelWork* work, int unit, void* data);
* @param data Custom data that will be passed to the callback. * @param data Custom data that will be passed to the callback.
* @return The newly allocated handler. * @return The newly allocated handler.
*/ */
ParallelWork* parallelWorkCreate(ParallelUnitFunction func, int units, void* data); RENDERINGSHARED_EXPORT ParallelWork* parallelWorkCreate(ParallelUnitFunction func, int units, void* data);
/** /**
* Delete a parallel work handler. * Delete a parallel work handler.
@ -33,7 +35,7 @@ ParallelWork* parallelWorkCreate(ParallelUnitFunction func, int units, void* dat
* The work must be terminated or fully interrupted before calling this. * The work must be terminated or fully interrupted before calling this.
* @param work The handler to free. * @param work The handler to free.
*/ */
void parallelWorkDelete(ParallelWork* work); RENDERINGSHARED_EXPORT void parallelWorkDelete(ParallelWork* work);
/** /**
* Start working on the units. * Start working on the units.
@ -41,7 +43,7 @@ void parallelWorkDelete(ParallelWork* work);
* @param work The handler. * @param work The handler.
* @param workers Number of threads to spaws, -1 for an optimal number. * @param workers Number of threads to spaws, -1 for an optimal number.
*/ */
int parallelWorkPerform(ParallelWork* work, int workers); RENDERINGSHARED_EXPORT int parallelWorkPerform(ParallelWork* work, int workers);
@ -55,7 +57,7 @@ typedef int (*FuncParallelJob)(ParallelQueue* queue, int job_id, void* data, int
* @param collect True to collect finished jobs and wait for a call to parallelQueueCollectJobs, False to discard finished jobs. * @param collect True to collect finished jobs and wait for a call to parallelQueueCollectJobs, False to discard finished jobs.
* @return The newly allocated queue. * @return The newly allocated queue.
*/ */
ParallelQueue* parallelQueueCreate(int collect); RENDERINGSHARED_EXPORT ParallelQueue* parallelQueueCreate(int collect);
/** /**
* Delete a parallel queue. * Delete a parallel queue.
@ -64,7 +66,7 @@ ParallelQueue* parallelQueueCreate(int collect);
* If the queue is in collect mode, you should call parallelQueueInterrupt, then parallelQueueCollectJobs, before calling this. * If the queue is in collect mode, you should call parallelQueueInterrupt, then parallelQueueCollectJobs, before calling this.
* @param queue The queue to free. * @param queue The queue to free.
*/ */
void parallelQueueDelete(ParallelQueue* queue); RENDERINGSHARED_EXPORT void parallelQueueDelete(ParallelQueue* queue);
/** /**
* Interrupt the queue processing. * Interrupt the queue processing.
@ -73,7 +75,7 @@ void parallelQueueDelete(ParallelQueue* queue);
* refuse future jobs. * refuse future jobs.
* @param queue The queue to interrupt. * @param queue The queue to interrupt.
*/ */
void parallelQueueInterrupt(ParallelQueue* queue); RENDERINGSHARED_EXPORT void parallelQueueInterrupt(ParallelQueue* queue);
/** /**
* Wait for all jobs to finish. * Wait for all jobs to finish.
@ -81,7 +83,7 @@ void parallelQueueInterrupt(ParallelQueue* queue);
* This function will return as soon as there is no pending jobs. It is recommended to stop feeding the queue, or this * This function will return as soon as there is no pending jobs. It is recommended to stop feeding the queue, or this
* function may never return. * function may never return.
*/ */
void parallelQueueWait(ParallelQueue* queue); RENDERINGSHARED_EXPORT void parallelQueueWait(ParallelQueue* queue);
/** /**
* Add a job to the queue. * Add a job to the queue.
@ -92,7 +94,7 @@ void parallelQueueWait(ParallelQueue* queue);
* @param data The data that will be passed to the callback. * @param data The data that will be passed to the callback.
* @return The job ID, 0 if the queue doesn't accept jobs. * @return The job ID, 0 if the queue doesn't accept jobs.
*/ */
int parallelQueueAddJob(ParallelQueue* queue, FuncParallelJob func_process, void* data); RENDERINGSHARED_EXPORT int parallelQueueAddJob(ParallelQueue* queue, FuncParallelJob func_process, void* data);
/** /**
* Collect finished jobs. * Collect finished jobs.
@ -102,7 +104,7 @@ int parallelQueueAddJob(ParallelQueue* queue, FuncParallelJob func_process, void
* @param func_collect The callback for collect. * @param func_collect The callback for collect.
* @return The number of collected jobs. * @return The number of collected jobs.
*/ */
int parallelQueueCollectJobs(FuncParallelJob func_collect); RENDERINGSHARED_EXPORT int parallelQueueCollectJobs(FuncParallelJob func_collect);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -9,6 +9,7 @@
extern "C" { extern "C" {
#endif #endif
#include "../rendering_global.h"
#include "color.h" #include "color.h"
#include "pack.h" #include "pack.h"
@ -16,47 +17,47 @@ typedef struct Texture2D Texture2D;
typedef struct Texture3D Texture3D; typedef struct Texture3D Texture3D;
typedef struct Texture4D Texture4D; typedef struct Texture4D Texture4D;
Texture2D* texture2DCreate(int xsize, int ysize); RENDERINGSHARED_EXPORT Texture2D* texture2DCreate(int xsize, int ysize);
void texture2DDelete(Texture2D* tex); RENDERINGSHARED_EXPORT void texture2DDelete(Texture2D* tex);
void texture2DGetSize(Texture2D* tex, int* xsize, int* ysize); RENDERINGSHARED_EXPORT void texture2DGetSize(Texture2D* tex, int* xsize, int* ysize);
void texture2DSetPixel(Texture2D* tex, int x, int y, Color col); RENDERINGSHARED_EXPORT void texture2DSetPixel(Texture2D* tex, int x, int y, Color col);
Color texture2DGetPixel(Texture2D* tex, int x, int y); RENDERINGSHARED_EXPORT Color texture2DGetPixel(Texture2D* tex, int x, int y);
Color texture2DGetNearest(Texture2D* tex, double dx, double dy); RENDERINGSHARED_EXPORT Color texture2DGetNearest(Texture2D* tex, double dx, double dy);
Color texture2DGetLinear(Texture2D* tex, double dx, double dy); RENDERINGSHARED_EXPORT Color texture2DGetLinear(Texture2D* tex, double dx, double dy);
Color texture2DGetCubic(Texture2D* tex, double dx, double dy); RENDERINGSHARED_EXPORT Color texture2DGetCubic(Texture2D* tex, double dx, double dy);
void texture2DFill(Texture2D* tex, Color col); RENDERINGSHARED_EXPORT void texture2DFill(Texture2D* tex, Color col);
void texture2DAdd(Texture2D* source, Texture2D* destination); RENDERINGSHARED_EXPORT void texture2DAdd(Texture2D* source, Texture2D* destination);
void texture2DSave(PackStream* stream, Texture2D* tex); RENDERINGSHARED_EXPORT void texture2DSave(PackStream* stream, Texture2D* tex);
void texture2DLoad(PackStream* stream, Texture2D* tex); RENDERINGSHARED_EXPORT void texture2DLoad(PackStream* stream, Texture2D* tex);
void texture2DSaveToFile(Texture2D* tex, const char* filepath); RENDERINGSHARED_EXPORT void texture2DSaveToFile(Texture2D* tex, const char* filepath);
Texture3D* texture3DCreate(int xsize, int ysize, int zsize); RENDERINGSHARED_EXPORT Texture3D* texture3DCreate(int xsize, int ysize, int zsize);
void texture3DDelete(Texture3D* tex); RENDERINGSHARED_EXPORT void texture3DDelete(Texture3D* tex);
void texture3DGetSize(Texture3D* tex, int* xsize, int* ysize, int* zsize); RENDERINGSHARED_EXPORT void texture3DGetSize(Texture3D* tex, int* xsize, int* ysize, int* zsize);
void texture3DSetPixel(Texture3D* tex, int x, int y, int z, Color col); RENDERINGSHARED_EXPORT void texture3DSetPixel(Texture3D* tex, int x, int y, int z, Color col);
Color texture3DGetPixel(Texture3D* tex, int x, int y, int z); RENDERINGSHARED_EXPORT Color texture3DGetPixel(Texture3D* tex, int x, int y, int z);
Color texture3DGetNearest(Texture3D* tex, double dx, double dy, double dz); RENDERINGSHARED_EXPORT Color texture3DGetNearest(Texture3D* tex, double dx, double dy, double dz);
Color texture3DGetLinear(Texture3D* tex, double dx, double dy, double dz); RENDERINGSHARED_EXPORT Color texture3DGetLinear(Texture3D* tex, double dx, double dy, double dz);
Color texture3DGetCubic(Texture3D* tex, double dx, double dy, double dz); RENDERINGSHARED_EXPORT Color texture3DGetCubic(Texture3D* tex, double dx, double dy, double dz);
void texture3DFill(Texture3D* tex, Color col); RENDERINGSHARED_EXPORT void texture3DFill(Texture3D* tex, Color col);
void texture3DAdd(Texture3D* source, Texture3D* destination); RENDERINGSHARED_EXPORT void texture3DAdd(Texture3D* source, Texture3D* destination);
void texture3DSave(PackStream* stream, Texture3D* tex); RENDERINGSHARED_EXPORT void texture3DSave(PackStream* stream, Texture3D* tex);
void texture3DLoad(PackStream* stream, Texture3D* tex); RENDERINGSHARED_EXPORT void texture3DLoad(PackStream* stream, Texture3D* tex);
void texture3DSaveToFile(Texture3D* tex, const char* filepath); RENDERINGSHARED_EXPORT void texture3DSaveToFile(Texture3D* tex, const char* filepath);
Texture4D* texture4DCreate(int xsize, int ysize, int zsize, int wsize); RENDERINGSHARED_EXPORT Texture4D* texture4DCreate(int xsize, int ysize, int zsize, int wsize);
void texture4DDelete(Texture4D* tex); RENDERINGSHARED_EXPORT void texture4DDelete(Texture4D* tex);
void texture4DGetSize(Texture4D* tex, int* xsize, int* ysize, int* zsize, int* wsize); RENDERINGSHARED_EXPORT void texture4DGetSize(Texture4D* tex, int* xsize, int* ysize, int* zsize, int* wsize);
void texture4DSetPixel(Texture4D* tex, int x, int y, int z, int w, Color col); RENDERINGSHARED_EXPORT void texture4DSetPixel(Texture4D* tex, int x, int y, int z, int w, Color col);
Color texture4DGetPixel(Texture4D* tex, int x, int y, int z, int w); RENDERINGSHARED_EXPORT Color texture4DGetPixel(Texture4D* tex, int x, int y, int z, int w);
Color texture4DGetNearest(Texture4D* tex, double dx, double dy, double dz, double dw); RENDERINGSHARED_EXPORT Color texture4DGetNearest(Texture4D* tex, double dx, double dy, double dz, double dw);
Color texture4DGetLinear(Texture4D* tex, double dx, double dy, double dz, double dw); RENDERINGSHARED_EXPORT Color texture4DGetLinear(Texture4D* tex, double dx, double dy, double dz, double dw);
Color texture4DGetCubic(Texture4D* tex, double dx, double dy, double dz, double dw); RENDERINGSHARED_EXPORT Color texture4DGetCubic(Texture4D* tex, double dx, double dy, double dz, double dw);
void texture4DFill(Texture4D* tex, Color col); RENDERINGSHARED_EXPORT void texture4DFill(Texture4D* tex, Color col);
void texture4DAdd(Texture4D* source, Texture4D* destination); RENDERINGSHARED_EXPORT void texture4DAdd(Texture4D* source, Texture4D* destination);
void texture4DSave(PackStream* stream, Texture4D* tex); RENDERINGSHARED_EXPORT void texture4DSave(PackStream* stream, Texture4D* tex);
void texture4DLoad(PackStream* stream, Texture4D* tex); RENDERINGSHARED_EXPORT void texture4DLoad(PackStream* stream, Texture4D* tex);
void texture4DSaveToFile(Texture4D* tex, const char* filepath); RENDERINGSHARED_EXPORT void texture4DSaveToFile(Texture4D* tex, const char* filepath);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -5,6 +5,7 @@
* Definition of a geographic area. * Definition of a geographic area.
*/ */
#include "../rendering_global.h"
#include "rendering/tools/euclid.h" #include "rendering/tools/euclid.h"
#include "rendering/tools/curve.h" #include "rendering/tools/curve.h"
#include "rendering/tools/pack.h" #include "rendering/tools/pack.h"
@ -15,28 +16,28 @@ extern "C" {
typedef struct Zone Zone; typedef struct Zone Zone;
Zone* zoneCreate(); RENDERINGSHARED_EXPORT Zone* zoneCreate();
void zoneDelete(Zone* zone); RENDERINGSHARED_EXPORT void zoneDelete(Zone* zone);
void zoneSave(PackStream* stream, Zone* zone); RENDERINGSHARED_EXPORT void zoneSave(PackStream* stream, Zone* zone);
void zoneLoad(PackStream* stream, Zone* zone); RENDERINGSHARED_EXPORT void zoneLoad(PackStream* stream, Zone* zone);
void zoneCopy(Zone* source, Zone* destination); RENDERINGSHARED_EXPORT void zoneCopy(Zone* source, Zone* destination);
void zoneClear(Zone* zone); RENDERINGSHARED_EXPORT void zoneClear(Zone* zone);
void zoneSetAbsoluteHeight(Zone* zone); RENDERINGSHARED_EXPORT void zoneSetAbsoluteHeight(Zone* zone);
void zoneSetRelativeHeight(Zone* zone, double min, double middle, double max); RENDERINGSHARED_EXPORT void zoneSetRelativeHeight(Zone* zone, double min, double middle, double max);
void zoneIncludeCircleArea(Zone* zone, double value, double centerx, double centerz, double softradius, double hardradius); RENDERINGSHARED_EXPORT void zoneIncludeCircleArea(Zone* zone, double value, double centerx, double centerz, double softradius, double hardradius);
void zoneExcludeCircleArea(Zone* zone, double centerx, double centerz, double softradius, double hardradius); RENDERINGSHARED_EXPORT void zoneExcludeCircleArea(Zone* zone, double centerx, double centerz, double softradius, double hardradius);
void zoneGetHeightCurve(Zone* zone, Curve* curve); RENDERINGSHARED_EXPORT void zoneGetHeightCurve(Zone* zone, Curve* curve);
void zoneSetHeightCurve(Zone* zone, Curve* curve); RENDERINGSHARED_EXPORT void zoneSetHeightCurve(Zone* zone, Curve* curve);
void zoneAddHeightRangeQuick(Zone* zone, double value, double hardmin, double softmin, double softmax, double hardmax); RENDERINGSHARED_EXPORT void zoneAddHeightRangeQuick(Zone* zone, double value, double hardmin, double softmin, double softmax, double hardmax);
void zoneGetSlopeCurve(Zone* zone, Curve* curve); RENDERINGSHARED_EXPORT void zoneGetSlopeCurve(Zone* zone, Curve* curve);
void zoneSetSlopeCurve(Zone* zone, Curve* curve); RENDERINGSHARED_EXPORT void zoneSetSlopeCurve(Zone* zone, Curve* curve);
void zoneAddSlopeRangeQuick(Zone* zone, double value, double hardmin, double softmin, double softmax, double hardmax); RENDERINGSHARED_EXPORT void zoneAddSlopeRangeQuick(Zone* zone, double value, double hardmin, double softmin, double softmax, double hardmax);
double zoneGetValue(Zone* zone, Vector3 location, Vector3 normal); RENDERINGSHARED_EXPORT double zoneGetValue(Zone* zone, Vector3 location, Vector3 normal);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_WATER_PUBLIC_H_ #ifndef _PAYSAGES_WATER_PUBLIC_H_
#define _PAYSAGES_WATER_PUBLIC_H_ #define _PAYSAGES_WATER_PUBLIC_H_
#include "../rendering_global.h"
#include "../shared/types.h" #include "../shared/types.h"
#include "../tools/lighting.h" #include "../tools/lighting.h"
#include "../tools/curve.h" #include "../tools/curve.h"
@ -62,17 +63,17 @@ typedef struct
} WaterRenderer; } WaterRenderer;
extern StandardDefinition WaterDefinitionClass; RENDERINGSHARED_EXPORT extern StandardDefinition WaterDefinitionClass;
extern StandardRenderer WaterRendererClass; RENDERINGSHARED_EXPORT extern StandardRenderer WaterRendererClass;
void waterRenderSurface(Renderer* renderer); RENDERINGSHARED_EXPORT void waterRenderSurface(Renderer* renderer);
void waterAutoPreset(WaterDefinition* definition, WaterPreset preset); RENDERINGSHARED_EXPORT void waterAutoPreset(WaterDefinition* definition, WaterPreset preset);
Renderer* waterCreatePreviewCoverageRenderer(); RENDERINGSHARED_EXPORT Renderer* waterCreatePreviewCoverageRenderer();
Color waterGetPreviewCoverage(Renderer* renderer, double x, double y, double scaling, int highlight_enabled); RENDERINGSHARED_EXPORT Color waterGetPreviewCoverage(Renderer* renderer, double x, double y, double scaling, int highlight_enabled);
Renderer* waterCreatePreviewColorRenderer(); RENDERINGSHARED_EXPORT Renderer* waterCreatePreviewColorRenderer();
Color waterGetPreviewColor(Renderer* renderer, double x, double y, double scaling); RENDERINGSHARED_EXPORT Color waterGetPreviewColor(Renderer* renderer, double x, double y, double scaling);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -35,7 +35,7 @@ typedef struct
#endif #endif
typedef Color (*PictureCallbackSavePixel)(void* data, int x, int y); typedef Color (*PictureCallbackSavePixel)(void* data, int x, int y);
int systemSavePictureFile(const char* filepath, PictureCallbackSavePixel callback_pixel, void* data, int width, int height); SYSTEMSHARED_EXPORT int systemSavePictureFile(const char* filepath, PictureCallbackSavePixel callback_pixel, void* data, int width, int height);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -6,18 +6,19 @@
#QT -= gui #QT -= gui
TARGET = paysages_system
TEMPLATE = lib TEMPLATE = lib
TARGET = paysages_system
DEFINES += SYSTEM_LIBRARY DEFINES += SYSTEM_LIBRARY
CONFIG(release, debug|release): DEFINES += NDEBUG
SOURCES += \ SOURCES += \
PictureFile.cpp \ PictureFile.cpp \
Thread.cpp \ Thread.cpp \
Mutex.cpp Mutex.cpp
HEADERS +=\ HEADERS += \
system_global.h \ system_global.h \
PictureFile.h \ PictureFile.h \
Thread.h \ Thread.h \
Mutex.h Mutex.h

View file

@ -4,18 +4,20 @@
/* Shared object helpers */ /* Shared object helpers */
#ifdef __cplusplus #ifdef __cplusplus
# include <QtCore/qglobal.h> # include <QtCore/qglobal.h>
# if defined(SYSTEM_LIBRARY)
# define SYSTEMSHARED_EXPORT Q_DECL_EXPORT
# else
# define SYSTEMSHARED_EXPORT Q_DECL_IMPORT
# endif
#else #else
# if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) # if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
# define SYSTEMSHARED_EXPORT __declspec(dllimport) # define Q_DECL_EXPORT __declspec(dllexport)
# define Q_DECL_IMPORT __declspec(dllimport)
# else # else
# define SYSTEMSHARED_EXPORT # define Q_DECL_EXPORT
# define Q_DECL_IMPORT
# endif # endif
#endif #endif
#if defined(SYSTEM_LIBRARY)
# define SYSTEMSHARED_EXPORT Q_DECL_EXPORT
#else
# define SYSTEMSHARED_EXPORT Q_DECL_IMPORT
#endif
/* Namespace using */ /* Namespace using */
#ifdef __cplusplus #ifdef __cplusplus