⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chgrrend.h

📁 Windows上的MUD客户端程序
💻 H
📖 第 1 页 / 共 2 页
字号:
#define CombineReplace		RLCombineReplace
#define CombineBefore		RLCombineBefore
#define CombineAfter		RLCombineAfter
typedef RLCombineType		ChNativeCombineType;

#define ColorFromFace		RLColourFromFace
#define ColorFromVertex	    RLColourFromVertex

#define ProjectPerspective 		RLProjectPerspective 
#define ProjectOrthographic		RLProjectOrthographic

#define ChNrLightAmbient		RLLightAmbient	
#define ChNrLightDirectional	RLLightDirectional
#define ChNrLightPoint	  		RLLightPoint	  	
#define ChNrLightSpot			RLLightSpot		

#define D3DRelease(obj)	

// These two macros only work in the scope of ChRenderContext for d3d
#define ChNrSetDefaultTextureColors(n)				RLTextureSetDefaultColours(n)
#define ChNrSetDefaultTextureShades(n)				RLTextureSetDefaultShades(n)

#elif defined(CH_USE_D3D)
// Microsoft d3d
typedef LPDIRECT3DRMDEVICE  ChNativeContext;
typedef LPDIRECT3DRMFRAME ChNrFrame;	
typedef LPDIRECT3DRMVIEWPORT ChNrViewport;	
typedef LPDIRECT3DRMMESHBUILDER ChNrMesh;
typedef LPDIRECT3DRMFACE ChNrFace;
typedef LPDIRECT3DRMLIGHT ChNrLight;
typedef LPDIRECT3DRMMATERIAL ChNrMaterial;
typedef LPDIRECT3DRMOBJECT ChNrObject;
typedef D3DRMIMAGE ChNrImage;
typedef D3DRMLIGHTTYPE ChNrLightType;
typedef D3DRMVECTOR4D	ChNrVector4d;
typedef D3DVECTOR	ChNrVector;

typedef D3DRMPALETTEENTRY	ChNrPaletteEntry;

typedef LPDIRECT3DRMFACEARRAY	ChNrFaceArray;
typedef LPDIRECT3DRMLIGHTARRAY	ChNrLightArray;
typedef LPDIRECT3DRMFRAMEARRAY	ChNrFrameArray;

typedef D3DRMRENDERQUALITY	ChNrRenderQuality;
typedef D3DCOLORMODEL	ChNrColorModel;
typedef unsigned long ChNrFaceData;

#define ChNrPaletteFree			D3DRMPALETTE_FREE
#define ChNrPaletteReadOnly 	D3DRMPALETTE_READONLY   
#define ChNrPaletteReserved 	D3DRMPALETTE_RESERVED   

			// Native Renderer (Nr) macros to make RL & D3D look
			// pretty much alike
#define ChNrDeviceGetDither(dev)		((dev)->GetDither())
#define ChNrDeviceGetHeight(dev)		((dev)->GetHeight())
#define ChNrDeviceGetShades(dev)		((dev)->GetShades())
#define ChNrDeviceGetWidth(dev)			((dev)->GetWidth())
#define ChNrDeviceGetQuality(dev)		((dev)->GetQuality())
#define ChNrDeviceGetColorModel(dev)	((dev)->GetColorModel())

	
#define ChNrDeviceSetDither(dev, dit)	((dev)->SetDither(dit))
#define ChNrDeviceSetHeight(dev, h)		((dev)->SetHeight(h))
#define ChNrDeviceSetShades(dev, ns)	((dev)->SetShades(ns))	
#define ChNrDeviceSetWidth(dev, w)		SetWidth(w))
#define ChNrDeviceSetQuality(dev, q)	((dev)->SetQuality(q))

#define ChNrDeviceUpdate(dev)		(dev)->Update()

#define ChNrViewportForceUpdate(vu, dwX1, dwY1, dwX2,dwY2)	\
	  		((vu)->ForceUpdate((dwX1), (dwY1), (dwX2),(dwY2)))
#define ChNrViewportRender(vu, fr)			((vu)->Render(fr))
#define ChNrViewportClear(vu)				((vu)->Clear())
#define ChNrViewportFindFaces	   		RLViewportFindFaces
#define ChNrViewportFindVisual	   		RLViewportFindVisual
#define ChNrViewportTransform(vu, v4dst, v3src)	  		((vu)->Transform((v4dst), (v3src)))
#define ChNrViewportInverseTransform(vu, v3dst, v4src)	((vu)->InverseTransform((v3dst), (v4src)))
#define ChNrViewportSetBack(vu, d)	 	((vu)->SetBack(d))
#define ChNrViewportGetBack(vu)	 		((vu)->GetBack())
#define ChNrViewportSetFront(vu, d)	 	((vu)->SetFront(d))
#define ChNrViewportGetFront(vu)	 	((vu)->GetFront())
#define ChNrViewportGetField(vu)		((vu)->GetField())
#define ChNrViewportSetField(vu, d)	 	((vu)->SetField(d))

#define ChNrTextureChanged(txt)			((txt)->Changed())

#define ChNrFrameAddCallback(frm, fn, dat)	((frm)->AddMoveCallback((fn), (dat)))
#define ChNrFrameAddScale(frm, cmbn, sx, sy, sz)	((frm)->AddScale((cmbn), (sx), (sy), (sz)))
#define ChNrFrameAddTransform(frm, cmbn, mat)		((frm)->AddTransform((cmbn), (mat)))
#define ChNrFrameMove(frm, dlta)			 ((frm)->Move(dlta))
#define ChNrFrameSetPosition(frm, relFrm, px, py, pz)	((frm)->SetPosition((relFrm), (px), (py), (pz)))
#define ChNrFrameAddVisual(frm, vis)		 ((frm)->AddVisual(vis))
#define ChNrFrameRemoveChild(frm, chld)		((frm)->DeleteChild(chld))
#define ChNrFrameAddChild(frm, chld)		((frm)->AddChild(chld))
#define ChNrFrameTransform(frm, dst, src)	((frm)->Transform((dst), (src)))

#define ChNrMeshSetQuality(msh, q)		((msh)->SetQuality(q))

#define ChNrMeshSetColorSource(msh,  src)			((msh)->SetColorSource(src))
#define ChNrMeshSetVertexColor(msh, vIndex, clr)	((msh)->SetVertexColor((vIndex), (clr)))
#define ChNrFaceSetColor(fce, clr)					((fce)->SetColor(clr))

//#define ChNrFaceInfo                      
//#define ChNrFrameGetLights 						((frm)->GetLights       
//#define ChNrViewportFindFace
#define ChNrFaceAddVertexAndNormalIndexed(fce, v, n)	((fce)->AddVertexAndNormalIndexed((v), (n)))  
#define ChNrFaceGetColor(fce)							((fce)->GetColor())                  
#define ChNrFaceGetVertexCount(fce)						((fce)->GetVertexCount())             
#define ChNrFaceGetVertexIndex(fce, inx)				((fce)->GetVertexIndex(inx))             
#define ChNrFaceSetColor(fce, clr)						((fce)->SetColor(clr))                  
#define ChNrFrameAddLight(frm, lt)						((frm)->AddLight(lt))        
#define ChNrFrameAddTranslation(frm, cmbn, tx, ty, tz)		((frm)->AddTranslation((cmbn), (tx), (ty), (tz)))  
#define ChNrFrameGetChildren(frm, pcnt, pary)			((frm)->GetChildren(pary))     
#define ChNrFrameGetOrientation(frm, frmRef, lk, up)	((frm)->GetOrientation((frmRef), (lk), (up)))
#define ChNrFrameGetParent(frm, prnt) 					((frm)->GetParent(&(prnt)))       
#define ChNrFrameGetPosition(frm, frmRef, pos)			((frm)->GetPosition((frmRef), (pos)))
#define ChNrFrameInverseTransform(frm, v1, v2)			((frm)->InverseTransform((v1), (v2)))
#define ChNrFrameRemoveVisual(frm, vis)					((frm)->DeleteVisual(vis))    
#define ChNrFrameSetOrientation(frm, frmRef, lkx, lky, lkz, upx, upy, upz)	((frm)->SetOrientation((frmRef), (lkx), (lky), (lkz), (upx), (upy), (upz)))  
#define ChNrFrameGetLights(frm, pcnt, pary)				((frm)->GetLights((pary)))
#define ChNrLightGetConstantAttenuation(lt)				((lt)->GetConstantAttenuation())
#define ChNrLightGetLinearAttenuation(lt)				((lt)->GetLinearAttenuation())   
#define ChNrLightGetQuadraticAttenuation(lt)			((lt)->GetQuadraticAttenuation())
#define ChNrLightSetColor(lt, clr)						((lt)->SetColor(clr))              
#define ChNrLightSetPenumbra(lt, val)					((lt)->SetPenumbra(val))            
#define ChNrLightSetUmbra(lt, val)						((lt)->SetUmbra(val))                
#define ChNrMeshAddFaces(msh, vcnt, v, ncnt, n, fcdata, pnfc, pfcary)		((msh)->AddFaces((vcnt), (v), (ncnt), (n), (fcdata), (pfcary)))
#define ChNrMeshAddNormal(msh, nx, ny, nz)			 	((msh)->AddNormal((nx), (ny), (nz)))
#define ChNrMeshAddVertex(msh, nx, ny, nz)			 	((msh)->AddVertex((nx), (ny), (nz)))
#define ChNrMeshCreateFace(msh, fce)			 		((msh)->CreateFace(&(fce)))
#define ChNrMeshGetColorSource(msh)						((msh)->GetColorSource())
#define ChNrMeshReserveSpace(msh, vcnt, ncnt, fcnt)		((msh)->ReserveSpace((vcnt), (ncnt), (fcnt)))	
#define ChNrMeshSetPerspective(msh, val)				((msh)->SetPerspective((val)))
#define ChNrMeshSetTexture(msh, val)					((msh)->SetTexture((val)))
#define ChNrMeshSetTextureCoordinates(msh, i, u, v)		((msh)->SetTextureCoordinates((i), (u), (v)))
#define ChNrMeshSetTextureTopology(msh, valu, valv)		((msh)->SetTextureTopology((valu),(valv)))
#define ChNrObjectRemoveDestroyCallback(o, fn, dat)		((o)->DeleteDestroyCallback((fn), (dat)))
#define ChNrViewportGetCamera(vu, cam)					((vu)->GetCamera(&(cam)))
#define ChNrViewportGetHeight(vu)						((vu)->GetHeight())
#define ChNrViewportGetProjection(vu)					((vu)->GetProjection())
#define ChNrViewportGetWidth(vu)						((vu)->GetWidth())
#define ChNrViewportSetProjection(vu, prval)			((vu)->SetProjection(prval))

#define ChNrTextureSetShades(tx, n)						((tx)->SetShades(n))
#define ChNrTextureSetColors(tx, n)						((tx)->SetColors(n))
#define ChNrTextureSetDecalScale(tx, val)				((tx)->SetDecalScale(val))
#define ChNrTextureSetDecalOrigin(tx, px, py) 			((tx)->SetDecalOrigin((px), (py))) 

#define ChNrFaceGetMaterial(fce, pmat)					((fce)->GetMaterial(pmat))
#define ChNrFaceSetMaterial(fce, mat)					((fce)->SetMaterial(mat))
#define ChNrMeshSetMaterial(msh, mat)					((msh)->SetMaterial(mat))

#define ChNrObjectDestroy(o)							((o)->Release())
#define ChNrObjectAddDestroyCallback(o, fn, dat)		((o)->AddDestroyCallback((fn), (dat)))
#define ChNrObjectSetAppData(o, dat)					((o)->SetAppData(dat))
#define ChNrObjectGetAppData(o)							((o)->GetAppData())
														
#define ChNrObjectReference(o)							((o)->AddRef())
#define ChNrFree(o)				((o)->Release())

#define RenderWireframe	D3DRMRENDER_WIREFRAME 
#define RenderUnlitFlat	D3DRMRENDER_UNLITFLAT 
#define RenderFlat		D3DRMRENDER_FLAT      
#define RenderGouraud	D3DRMRENDER_GOURAUD   
#define RenderPhong		D3DRMRENDER_PHONG

#define CombineReplace     D3DRMCOMBINE_REPLACE
#define CombineBefore      D3DRMCOMBINE_BEFORE
#define CombineAfter        D3DRMCOMBINE_AFTER
#define	ChNativeCombineType D3DRMCOMBINETYPE
#define	ChNrValue D3DVALUE

#define ColorFromFace		D3DRMCOLOR_FROMFACE
#define ColorFromVertex	    D3DRMCOLOR_FROMVERTEX

#define ProjectPerspective 		D3DRMPROJECT_PERSPECTIVE 
#define ProjectOrthographic		D3DRMPROJECT_ORTHOGRAPHIC

#define ChNrLightAmbient		D3DRMLIGHT_AMBIENT
#define ChNrLightDirectional	D3DRMLIGHT_DIRECTIONAL
#define ChNrLightPoint	  		D3DRMLIGHT_POINT
#define ChNrLightSpot			D3DRMLIGHT_SPOT

#define D3DRelease(obj)		((obj)?(obj)->Release():0)	

// These two macros only work in the scope of ChRenderContext
#define ChNrSetDefaultTextureColors(n)				m_D3DRM->SetDefaultTextureColors(n)
#define ChNrSetDefaultTextureShades(n)				m_D3DRM->SetDefaultTextureShades(n)


#endif // 3DR, etc.

#define ChNrVal	ChNrValue

#if (defined(CH_USE_RLAB)|| defined(CH_USE_D3D))
template <class aType, class anArrayType>
inline aType &GetElement(anArrayType &ary, unsigned int index, aType &elt)
{
	#if (defined(CH_USE_RLAB))
	return (elt = ary[index]);
	#elif defined(CH_USE_D3D)
	ary->GetElement(DWORD(index), &elt);
	return elt;
	#endif
}
#endif

#endif	// ChGrRend_h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -