mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-21 03:52:33 +00:00
85e884cee1
* plug-ins/Lighting/lighting_main.c * plug-ins/Lighting/lighting_main.h * plug-ins/Lighting/lighting_preview.c * plug-ins/Lighting/lighting_preview.h * plug-ins/Lighting/lighting_shade.c * plug-ins/Lighting/lighting_ui.c: completely reworked UI for lighting page. Now supports up to 6 lights (more is trivial). Added ability to temporarily isolate selected light. Added light intensity controls. Can interactively position each light (does not quite work yet for directional lights).
101 lines
1.8 KiB
C
101 lines
1.8 KiB
C
#ifndef __LIGHTING_MAIN_H__
|
|
#define __LIGHTING_MAIN_H__
|
|
|
|
/* Defines and stuff */
|
|
/* ================= */
|
|
|
|
#define TILE_CACHE_SIZE 16
|
|
#define NUM_LIGHTS 6
|
|
|
|
/* Typedefs */
|
|
/* ======== */
|
|
|
|
typedef enum
|
|
{
|
|
POINT_LIGHT,
|
|
DIRECTIONAL_LIGHT,
|
|
SPOT_LIGHT,
|
|
NO_LIGHT
|
|
} LightType;
|
|
|
|
enum
|
|
{
|
|
LINEAR_MAP,
|
|
LOGARITHMIC_MAP,
|
|
SINUSOIDAL_MAP,
|
|
SPHERICAL_MAP
|
|
};
|
|
|
|
enum
|
|
{
|
|
IMAGE_BUMP,
|
|
WAVES_BUMP
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
gdouble ambient_int;
|
|
gdouble diffuse_int;
|
|
gdouble diffuse_ref;
|
|
gdouble specular_ref;
|
|
gdouble highlight;
|
|
gboolean metallic;
|
|
GimpRGB color;
|
|
} MaterialSettings;
|
|
|
|
typedef struct
|
|
{
|
|
LightType type;
|
|
GimpVector3 position;
|
|
GimpVector3 direction;
|
|
GimpRGB color;
|
|
gdouble intensity;
|
|
gboolean active;
|
|
} LightSettings;
|
|
|
|
typedef struct
|
|
{
|
|
gint32 drawable_id;
|
|
gint32 bumpmap_id;
|
|
gint32 envmap_id;
|
|
|
|
/* Render variables */
|
|
/* ================ */
|
|
|
|
GimpVector3 viewpoint;
|
|
GimpVector3 planenormal;
|
|
LightSettings lightsource[NUM_LIGHTS];
|
|
MaterialSettings material;
|
|
MaterialSettings ref_material;
|
|
|
|
gdouble pixel_treshold;
|
|
gdouble bumpmax,bumpmin;
|
|
gint max_depth;
|
|
gint bumpmaptype;
|
|
|
|
/* Flags */
|
|
gint antialiasing;
|
|
gint create_new_image;
|
|
gint transparent_background;
|
|
gint bump_mapped;
|
|
gint env_mapped;
|
|
gint ref_mapped;
|
|
gint bumpstretch;
|
|
gint previewquality;
|
|
gboolean symbols;
|
|
gboolean interactive_preview;
|
|
|
|
/* Misc */
|
|
gboolean update_enabled;
|
|
gint light_selected;
|
|
gboolean light_isolated;
|
|
gdouble preview_zoom_factor;
|
|
} LightingValues;
|
|
|
|
/* Externally visible variables */
|
|
/* ============================ */
|
|
|
|
extern LightingValues mapvals;
|
|
|
|
#endif /* __LIGHTING_MAIN_H__ */
|