paysages3d/src/rendering/layers.h
Michaël Lemaire e82e0c47bd Added win32 DLL support everywhere
Build is now entirely possible from a fresh QtSDK install,
with no external dependency.
2013-10-20 16:47:59 +02:00

56 lines
1.9 KiB
C

#ifndef _PAYSAGES_LAYERS_H_
#define _PAYSAGES_LAYERS_H_
/* Factorized layer management (with names) */
#include "rendering_global.h"
#include "tools/pack.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef void* (*LayerCallbackCreate)();
typedef void (*LayerCallbackDelete)(void* layer);
typedef void (*LayerCallbackCopy)(void* source, void* definition);
typedef void (*LayerCallbackValidate)(void* layer);
typedef void (*LayerCallbackSave)(PackStream* stream, void* layer);
typedef void (*LayerCallbackLoad)(PackStream* stream, void* layer);
typedef struct {
LayerCallbackCreate callback_create;
LayerCallbackDelete callback_delete;
LayerCallbackCopy callback_copy;
LayerCallbackValidate callback_validate;
LayerCallbackSave callback_save;
LayerCallbackLoad callback_load;
} LayerType;
typedef struct Layers Layers;
RENDERINGSHARED_EXPORT Layers* layersCreate(LayerType type, int max_layer_count);
RENDERINGSHARED_EXPORT Layers* layersCreateCopy(Layers* original);
RENDERINGSHARED_EXPORT void layersDelete(Layers* layers);
RENDERINGSHARED_EXPORT void layersCopy(Layers* source, Layers* destination);
RENDERINGSHARED_EXPORT void layersValidate(Layers* layers);
RENDERINGSHARED_EXPORT void layersSave(PackStream* stream, Layers* layers);
RENDERINGSHARED_EXPORT void layersLoad(PackStream* stream, Layers* layers);
RENDERINGSHARED_EXPORT const char* layersGetName(Layers* layers, int layer);
RENDERINGSHARED_EXPORT void layersSetName(Layers* layers, int layer, const char* name);
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
}
#endif
#endif