﻿// Constants Wrapper for enums

// Generic On / Off wrapper
#define OPTION_OFF 0
#define OPTION_ON 1

#define OPTION_UV1 0
#define OPTION_UV2 1
#define OPTION_UV3 2

// Texture Tiling Mode
#define TILING_SEPARATED 0
#define TILING_MERGED 1

// Culling
#define CULLING_OFF 0
#define CULLING_FRONT 1
#define CULLING_BACK 2

// Blend Modes
#define BLEND_OPAQUE 0
#define BLEND_CUTOUT 1
#define BLEND_DITHERED 2
#define BLEND_ALPHATOCOVERAGE 3
#define BLEND_TRANSPARENT 4
#define BLEND_FADE 5
#define BLEND_ADDITIVE 6

// Vertex Normals Mode
#define NORMALMODE_TEXTURE 0
#define NORMALMODE_VERTEX 1

// Reflection Modes
#define REFLECTIONMODE_PBR 0
#define REFLECTIONMODE_BAKEDPBR 1
#define REFLECTIONMODE_MATCAP 2
#define REFLECTIONMODE_OFF 3

// Reflection Blend Modes
#define REFLECTIONBLENDMODE_ADD 0
#define REFLECTIONBLENDMODE_MULTIPLY 1
#define REFLECTIONBLENDMODE_SUBTRACT 2

// Emission Light Scaling Mode
#define EMISSION_LIGHT_SCALING_ON 0
#define EMISSION_LIGHT_SCALING_OFF 1

// Occlusion Mode
#define OCCLUSION_INDIRECT 0
#define OCCLUSION_INTEGRATED 1

// Outline Alebdo Tint
//  (generic opt)

// Outline Lighting Mode
#define OUTLINE_LIGHTING_LIT 0
#define OUTLINE_LIGHTING_EMISSIVE 1

// Outline Normal Mode
#define OUTLINE_NORMALMODE_MESH 0
#define OUTLINE_NORMALMODE_VERTEXCOLOR 1
#define OUTLINE_NORMALMODE_UVCHANNEL 2

// Outline UV Select
// (generic opt)

// Halftones
#define HALFTONE_SHADOWS 0
#define HALFTONE_HIGHLIGHTS 1
#define HALFTONE_SHADOWS_AND_HIGHLIGHTS 2
#define HALFTONE_OFF 3

// Dissolve Coordinate Mode
#define DISSOLVE_COORDINATE_UV 0
#define DISSOLVE_COORDINATE_ROOT 1
#define DISSOLVE_COORDINATE_HEIGHT 2

// AudioLink Modes
#define AUDIOLINK_OFF 0
#define AUDIOLINK_BASS 1
#define AUDIOLINK_LOWMID 2
#define AUDIOLINK_HIGHMID 3
#define AUDIOLINK_TREBLE 4
#define AUDIOLINK_PACKEDMAP 5
#define AUDIOLINK_UV 6

// UV Discarding
#define UVDISCARD_OFF 0
#define UVDISCARD_VERTEX 1
#define UVDISCARD_PIXEL 2

// UV Discard Channel
// 