// RenderOptionsValues.h
//
// Copyright © Diehl Graphsoft, Inc. 2000.
// All Rights Reserved.
//
// Contains definitions of values allowing communication between the main VW
// application and the Render Options plug-in.
//
// Last SourceSafe check-in:
//		$Revision: 5 $
//		$Date: 1/12/01 10:07 AM $
//
// Started 10/2/2000 by Paul C. Pharr



#ifndef _RENDEROPTIONSVALUES_
#define _RENDEROPTIONSVALUES_


// render preferences enumerations

enum RWShadowStyle {
	kRWShadowMapped = 1,
	kRWShadowRayTraced = 2
};

enum {
	kDetailLow = 1,
	kDetailMedium = 2,
	kDetailHigh = 3,
	kDetailVeryHigh = 4
};

enum {
	kTessellationDetailLow = 1,
	kTessellationDetailMedium = 2,
	kTessellationDetailHigh = 3,
	kTessellationDetailVeryHigh = 4
};
enum {
	kGLShadowSoftnessLow = 1,
	kGLShadowSoftnessMedium = 2,
	kGLShadowSoftnessHigh = 3
};

// API constants for calling the Render Settings library

const short kRWOptionsStructPtr			= 0;

const short kRWUseTextures			= 0;
const short kRWUseTransparency		= 1;
const short kRWUseShadows			= 2;
const short kRWUseRayTracing		= 3;
const short kRWUseAntiAliasing		= 4;
const short kRWUseNURBS				= 5;
const short kRWTessellationDetail	= 6;
const short kRWShadowStyle			= 7;
const short kRWRayTracingRecursion	= 8;


const short kGLUseTextures			= 0;
const short kGLTessellationDetail	= 1;
const short kGLUseNURBS				= 2;
const short kGLUseAntiAliasing		= 3;
const short kGLDrawEdges			= 4; 
const short kGLUseShadows			= 5;
const short kGLOnGroundOnly			= 6;
const short kGLShadowSoftness		= 7;

const short kHLSmoothingAngle		= 0;
const short kHLLineStyle			= 1;
const short kHLShadeFactorIndex		= 2;
const short kHLSketchHiddenLine		= 3;


const short kRWUpdateRender			= 0;


const short kGLUpdateRender			= 0;
const short kGLDisposeGeometry		= 1;  

const short kHLUpdateRender			= 0;

const short kGLHandle				= 0;

const short kHLHandle				= 0;


// Struct passed back an forth between Core and RenderSettings
struct RWCustomOptions
{
	bool	fUseTextures;
	bool	fUseTransparency;
	bool	fUseShadows;
	bool	fUseRayTracing;
	bool	fUseAntiAliasing;
	bool	fUseNURBS;
	short	fTessellationDetail;
	short	fShadowStyle;
	short	fRayTracingRecursion;
	short 	fAreaLightDetail;
	short 	fShadowMapDetail;
	bool 	fTransparentShadows;
	bool 	fAutoExposure;
};


#endif


