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
unix:LIBS += -lGLU
win32:LIBS += ../../libpaysages.a
CONFIG(release, debug|release): DEFINES += NDEBUG
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 += \
terrain/widgetheightmap.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
INCLUDEPATH += $$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
TEMPLATE = lib
CONFIG += console
TARGET = paysages_exploring
DEFINES += EXPLORING_LIBRARY
CONFIG(release, debug|release): DEFINES += NDEBUG
INCLUDEPATH += $$PWD/..
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 "GL/gl.h"
#include "GL/glu.h"
void exploringInit()
{

View file

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

View file

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

View file

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

View file

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

View file

@ -18,7 +18,7 @@ extern "C"
* 0.0 means no cloud is present.
* 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].
@ -26,22 +26,22 @@ double cloudsGetLayerCoverage(CloudsLayerDefinition* layer, Vector3 location);
* 0.0 means no cloud is present.
* 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].
*/
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.
*/
void cloudsBindFakeDensityToRenderer(CloudsRenderer* renderer);
RENDERINGSHARED_EXPORT void cloudsBindFakeDensityToRenderer(CloudsRenderer* renderer);
/*
* Bind real density functions to a renderer.
*/
void cloudsBindRealDensityToRenderer(CloudsRenderer* renderer);
RENDERINGSHARED_EXPORT void cloudsBindRealDensityToRenderer(CloudsRenderer* renderer);
#ifdef __cplusplus
}

View file

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

View file

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

View file

@ -51,7 +51,7 @@ typedef void (*FuncCloudsWalkingCallback)(CloudsWalker* walker);
* @param end End of the search to optimize
* @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.
@ -62,14 +62,14 @@ int cloudsOptimizeWalkingBounds(CloudsLayerDefinition* layer, Vector3* start, Ve
* @param start Start 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.
*
* @param walker The walker to free
*/
void cloudsDeleteWalker(CloudsWalker* walker);
RENDERINGSHARED_EXPORT void cloudsDeleteWalker(CloudsWalker* walker);
/**
* Define the segment size for next steps.
@ -77,7 +77,7 @@ void cloudsDeleteWalker(CloudsWalker* walker);
* @param walker The walker to configure
* @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.
@ -85,7 +85,7 @@ void cloudsWalkerSetStepSize(CloudsWalker* walker, double step);
* @param walker The walker to configure
* @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.
@ -95,7 +95,7 @@ void cloudsWalkerSetVoidSkipping(CloudsWalker* walker, int enabled);
* @param walker The walker to configure
* @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.
@ -103,14 +103,14 @@ void cloudsWalkerToggleLocalDensity(CloudsWalker* walker, int enabled);
* @param walker The walker to use
* @return 1 to continue the loop, 0 to stop
*/
int cloudsWalkerPerformStep(CloudsWalker* walker);
RENDERINGSHARED_EXPORT int cloudsWalkerPerformStep(CloudsWalker* walker);
/**
* Order the walker to stop.
*
* @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.
@ -121,7 +121,7 @@ void cloudsWalkerOrderStop(CloudsWalker* walker);
* @param walker The walker to use
* @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.
@ -131,14 +131,14 @@ void cloudsWalkerOrderRefine(CloudsWalker* walker, double precision);
* @param walker The walker to use
* @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.
*
* @param walker The walker to use
*/
CloudWalkerStepInfo* cloudsWalkerGetLastSegment(CloudsWalker* walker);
RENDERINGSHARED_EXPORT CloudWalkerStepInfo* cloudsWalkerGetLastSegment(CloudsWalker* walker);
/**
* 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 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
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_RENDER_H_
#define _PAYSAGES_RENDER_H_
#include "rendering_global.h"
#include "shared/types.h"
#include "tools/color.h"
#include "tools/euclid.h"
@ -25,25 +26,25 @@ typedef struct
int quality;
} RenderParams;
void renderInit();
void renderQuit();
RENDERINGSHARED_EXPORT void renderInit();
RENDERINGSHARED_EXPORT void renderQuit();
RenderArea* renderCreateArea(Renderer* renderer);
void renderDeleteArea(RenderArea* area);
RENDERINGSHARED_EXPORT RenderArea* renderCreateArea(Renderer* renderer);
RENDERINGSHARED_EXPORT void renderDeleteArea(RenderArea* area);
void renderSetParams(RenderArea* area, RenderParams params);
void renderSetToneMapping(RenderArea* area, ToneMappingOperator tonemapper, double exposure);
void renderSetBackgroundColor(RenderArea* area, Color* col);
void renderClear(RenderArea* area);
void renderUpdate(RenderArea* area);
RENDERINGSHARED_EXPORT void renderSetParams(RenderArea* area, RenderParams params);
RENDERINGSHARED_EXPORT void renderSetToneMapping(RenderArea* area, ToneMappingOperator tonemapper, double exposure);
RENDERINGSHARED_EXPORT void renderSetBackgroundColor(RenderArea* area, Color* col);
RENDERINGSHARED_EXPORT void renderClear(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);
int renderSaveToFile(RenderArea* area, const char* path);
void renderSetPreviewCallbacks(RenderArea* area, RenderCallbackStart start, RenderCallbackDraw draw, RenderCallbackUpdate update);
RENDERINGSHARED_EXPORT void renderPostProcess(RenderArea* area, int nbchunks);
RENDERINGSHARED_EXPORT int renderSaveToFile(RenderArea* area, const char* path);
RENDERINGSHARED_EXPORT void renderSetPreviewCallbacks(RenderArea* area, RenderCallbackStart start, RenderCallbackDraw draw, RenderCallbackUpdate update);
#ifdef __cplusplus

View file

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

View file

@ -1,14 +1,15 @@
TEMPLATE = lib
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
TEMPLATE = lib
TARGET = paysages_rendering
INCLUDEPATH += $$PWD/..
DEFINES += RENDERING_LIBRARY
CONFIG(release, debug|release): DEFINES += NDEBUG
INCLUDEPATH += $$PWD/..
SOURCES += main.c \
tools.c \
system.c \
@ -110,7 +111,8 @@ HEADERS += \
tools/boundingbox.h \
tools/array.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
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.
*/
#include "rendering_global.h"
#include "tools/pack.h"
#include "atmosphere/public.h"
#include "clouds/public.h"
@ -23,38 +24,38 @@ extern "C" {
typedef void (*SceneryCustomDataCallback)(PackStream* stream, void* data);
void sceneryInit();
void sceneryQuit();
RENDERINGSHARED_EXPORT void sceneryInit();
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);
void sceneryLoad(PackStream* stream);
RENDERINGSHARED_EXPORT void scenerySave(PackStream* stream);
RENDERINGSHARED_EXPORT void sceneryLoad(PackStream* stream);
void scenerySetAtmosphere(AtmosphereDefinition* atmosphere);
void sceneryGetAtmosphere(AtmosphereDefinition* atmosphere);
RENDERINGSHARED_EXPORT void scenerySetAtmosphere(AtmosphereDefinition* atmosphere);
RENDERINGSHARED_EXPORT void sceneryGetAtmosphere(AtmosphereDefinition* atmosphere);
void scenerySetCamera(CameraDefinition* camera);
void sceneryGetCamera(CameraDefinition* camera);
RENDERINGSHARED_EXPORT void scenerySetCamera(CameraDefinition* camera);
RENDERINGSHARED_EXPORT void sceneryGetCamera(CameraDefinition* camera);
void scenerySetClouds(CloudsDefinition* clouds);
void sceneryGetClouds(CloudsDefinition* clouds);
RENDERINGSHARED_EXPORT void scenerySetClouds(CloudsDefinition* clouds);
RENDERINGSHARED_EXPORT void sceneryGetClouds(CloudsDefinition* clouds);
void scenerySetTerrain(TerrainDefinition* terrain);
void sceneryGetTerrain(TerrainDefinition* terrain);
TerrainDefinition* sceneryGetTerrainDirect();
RENDERINGSHARED_EXPORT void scenerySetTerrain(TerrainDefinition* terrain);
RENDERINGSHARED_EXPORT void sceneryGetTerrain(TerrainDefinition* terrain);
RENDERINGSHARED_EXPORT TerrainDefinition* sceneryGetTerrainDirect();
void scenerySetTextures(TexturesDefinition* textures);
void sceneryGetTextures(TexturesDefinition* textures);
RENDERINGSHARED_EXPORT void scenerySetTextures(TexturesDefinition* textures);
RENDERINGSHARED_EXPORT void sceneryGetTextures(TexturesDefinition* textures);
void scenerySetWater(WaterDefinition* water);
void sceneryGetWater(WaterDefinition* water);
RENDERINGSHARED_EXPORT void scenerySetWater(WaterDefinition* water);
RENDERINGSHARED_EXPORT void sceneryGetWater(WaterDefinition* water);
Renderer* sceneryCreateStandardRenderer();
void sceneryBindRenderer(Renderer* renderer);
void sceneryRenderFirstPass(Renderer* renderer);
RENDERINGSHARED_EXPORT Renderer* sceneryCreateStandardRenderer();
RENDERINGSHARED_EXPORT void sceneryBindRenderer(Renderer* renderer);
RENDERINGSHARED_EXPORT void sceneryRenderFirstPass(Renderer* renderer);
#ifdef __cplusplus
}

View file

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

View file

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

View file

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

View file

@ -1,6 +1,8 @@
#ifndef _RENDERING_TERRAIN_RASTER_H_
#define _RENDERING_TERRAIN_RASTER_H_
#include "../rendering_global.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -21,19 +23,19 @@ typedef int (*FuncTerrainTessellationCallback)(Renderer* renderer, TerrainChunkI
*
* 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.
*/
void terrainTessellateChunk(Renderer* renderer, TerrainChunkInfo* chunk, int detail);
RENDERINGSHARED_EXPORT void terrainTessellateChunk(Renderer* renderer, TerrainChunkInfo* chunk, int detail);
/**
* Start the final rasterization of terrain.
*
* 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
}

View file

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

View file

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

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_H_
#define _PAYSAGES_TOOLS_H_
#include "rendering_global.h"
#include "shared/types.h"
#ifdef __cplusplus
@ -9,10 +10,10 @@ extern "C" {
#define UNUSED(_x_) ((void)(_x_))
double toolsRandom();
double toolsCubicInterpolate(double stencil[4], double x);
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 double toolsRandom();
RENDERINGSHARED_EXPORT double toolsCubicInterpolate(double stencil[4], double x);
RENDERINGSHARED_EXPORT double toolsBicubicInterpolate(double stencil[16], double x, double y);
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
}

View file

@ -1,6 +1,7 @@
#ifndef _PAYSAGES_TOOLS_ARRAY_H_
#define _PAYSAGES_TOOLS_ARRAY_H_
#include "../rendering_global.h"
#include "../shared/types.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.
*/
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 ****************/
@ -26,13 +27,13 @@ typedef struct
void* data;
} Array;
void arrayCreate(Array* array, int item_size);
void arrayDelete(Array* array);
void* arrayAppend(Array* array, void* item);
void arrayInsert(Array* array, void* item, int position);
void arrayReplace(Array* array, void* item, int position);
void arrayLStrip(Array* array, int count);
void arrayClear(Array* array);
RENDERINGSHARED_EXPORT void arrayCreate(Array* array, int item_size);
RENDERINGSHARED_EXPORT void arrayDelete(Array* array);
RENDERINGSHARED_EXPORT void* arrayAppend(Array* array, void* item);
RENDERINGSHARED_EXPORT void arrayInsert(Array* array, void* item, int position);
RENDERINGSHARED_EXPORT void arrayReplace(Array* array, void* item, int position);
RENDERINGSHARED_EXPORT void arrayLStrip(Array* array, int count);
RENDERINGSHARED_EXPORT void arrayClear(Array* array);
#ifdef __cplusplus
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,8 @@
#ifndef _PAYSAGES_TOOLS_PARALLEL_H_
#define _PAYSAGES_TOOLS_PARALLEL_H_
#include "../rendering_global.h"
/*
* 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.
* @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.
@ -33,7 +35,7 @@ ParallelWork* parallelWorkCreate(ParallelUnitFunction func, int units, void* dat
* The work must be terminated or fully interrupted before calling this.
* @param work The handler to free.
*/
void parallelWorkDelete(ParallelWork* work);
RENDERINGSHARED_EXPORT void parallelWorkDelete(ParallelWork* work);
/**
* Start working on the units.
@ -41,7 +43,7 @@ void parallelWorkDelete(ParallelWork* work);
* @param work The handler.
* @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.
* @return The newly allocated queue.
*/
ParallelQueue* parallelQueueCreate(int collect);
RENDERINGSHARED_EXPORT ParallelQueue* parallelQueueCreate(int collect);
/**
* 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.
* @param queue The queue to free.
*/
void parallelQueueDelete(ParallelQueue* queue);
RENDERINGSHARED_EXPORT void parallelQueueDelete(ParallelQueue* queue);
/**
* Interrupt the queue processing.
@ -73,7 +75,7 @@ void parallelQueueDelete(ParallelQueue* queue);
* refuse future jobs.
* @param queue The queue to interrupt.
*/
void parallelQueueInterrupt(ParallelQueue* queue);
RENDERINGSHARED_EXPORT void parallelQueueInterrupt(ParallelQueue* queue);
/**
* 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
* function may never return.
*/
void parallelQueueWait(ParallelQueue* queue);
RENDERINGSHARED_EXPORT void parallelQueueWait(ParallelQueue* 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.
* @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.
@ -102,7 +104,7 @@ int parallelQueueAddJob(ParallelQueue* queue, FuncParallelJob func_process, void
* @param func_collect The callback for collect.
* @return The number of collected jobs.
*/
int parallelQueueCollectJobs(FuncParallelJob func_collect);
RENDERINGSHARED_EXPORT int parallelQueueCollectJobs(FuncParallelJob func_collect);
#ifdef __cplusplus
}

View file

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

View file

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

View file

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

View file

@ -35,7 +35,7 @@ typedef struct
#endif
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
}

View file

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

View file

@ -4,18 +4,20 @@
/* Shared object helpers */
#ifdef __cplusplus
# include <QtCore/qglobal.h>
# if defined(SYSTEM_LIBRARY)
# define SYSTEMSHARED_EXPORT Q_DECL_EXPORT
# else
# define SYSTEMSHARED_EXPORT Q_DECL_IMPORT
# endif
#else
# 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
# define SYSTEMSHARED_EXPORT
# define Q_DECL_EXPORT
# define Q_DECL_IMPORT
# endif
#endif
#if defined(SYSTEM_LIBRARY)
# define SYSTEMSHARED_EXPORT Q_DECL_EXPORT
#else
# define SYSTEMSHARED_EXPORT Q_DECL_IMPORT
#endif
/* Namespace using */
#ifdef __cplusplus