Viewer: Object Viewer Sample for Direct3D Retained Mode

Click to open or copy the files for the Viewer sample.

Click to open or copy the Misc files (required).

Click to open or copy the Media files (required).

This is a standalone D3DRM sample application that allows you to load and view 3D objects.

The initial scene has a light source in the top right. To see this the view can be moved backwards and forwards using the T and R keys. Additional objects can be loaded from the file menu, and new light sources can be added from the lights menu.  Objects can be rotated with the left mouse button and dragged with the right.

The device quality can be altered using the Renderer menu. Using this menu the type of device used can also be switched from ramp to RGB. When using the RGB device the color of lights in the scene can be changed in the same way as you change the color of objects.

Building SDK Samples

This sample uses the following keywords:

addchild; addcone; addfaces; addframe; addlight; addmovecallback; addref; addrod; addscale; addvisual; animationcallback; anyinstance; beginpaint; bpptoddbd; cchookproc; checkmenuitem; choosecolor; choosenewcolor; clear; clearclipboard; clone; copyvisual; createanimationset; createdevice; createdevicefromclipper; createframe; createlight; createlightrgb; creatematerial; createmesh; createmeshbuilder; createprogressivemesh; createscene; createsurface; createviewport; cutvisual; d3ddivide; d3dmultiply; d3drmcolorgetalpha; d3drmcolorgetblue; d3drmcolorgetgreen; d3drmcolorgetred; d3drmcreatecolorrgb; d3drmloadxafasframe; d3drmloadxafaslist; d3drmvectorcrossproduct; d3drmvectornormalise; d3dval; defwindowproc; deletechild; deletevisual; deselectvisual; destroywindow; dialogbox; direct3drmcreate; directdrawcreate; directdrawcreateclipper; dispatchmessage; enablescrollbar; enddialog; endpaint; failed; fillmodetomenuitem; findandselectvisual; finddevice; firstinstance; freelibrary; getalphafromdialog; getbox; getbvalue; getclientrect; getcolor; getdc; getdetail; getdevicecaps; getdither; getdxversion; getelement; getfacecount; getfaces; getgvalue; getheight; getlights; getmenu; getopenfilename; getorientation; getparent; getpick; getposition; getprocaddress; getquality; getrvalue; getshades; getsize; getstockobject; getsubmenu; gettexturequality; getupdaterect; getversionex; getwidth; getwindowlong; getwindowword; handleactivate; handlepaint; idle; inversetransform; load; loadaccelerators; loadanimationset; loadcursor; loadframehierarchy; loadicon; loadlibrary; loadtexture; loadtextures; lstrcat; lstrcpy; lstrrchr; makebox; malloc; memset; messagebox; move; msg; myerrortostring; opennewfile; outputdebugstring; pastevisual; peekmessage; pick; placemesh; postquitmessage; queryinterface; rebuilddevice; registerclass; release; releasecapture; releasedc; render; resizeviewport; rgb; scale; scalescene; selectedframe; selectedlight; selectedvisual; selectpm; selectvisual; senddlgitemmessage; setalphadialog; setanimationcallback; setback; setcapture; setcolor; setcolorrgb; setcooperativelevel; setcursor; setdefaulttexturecolors; setdefaulttextureshades; setdetail; setdither; setfillmode; sethwnd; setmaterial; setmodel; setorientation; setposition; setquality; setrendermode; setrotation; setscrollinfo; setscrollpos; setshademode; setshades; settexturequality; settime; setvelocity; setwindowlong; shademodetomenuitem; showboxes; showwindow; sign_extend; sqrt; strtoul; succeeded; switch; toggleboxes; toggledither; togglelighting; toggletexturefiltering; transform; translateaccelerator; translatemessage; update; updatewindow; va_end; va_start; waitmessage; windowproc; wsprintf; wvsprintf; zeromemory

The Misc files demonstrate the following keywords:

_lclose; _lopen; _lread; addattachedsurface; addlight; addtoviewport; adjustwindowrectex; afterdevicecreated; appabout; appendmenu; appinit; apppause; attempt; beforedevicedestroyed; beginpaint; blt; bltfast; bpptoddbd; buildscene; calculateframerate; checkmenuitem; cleanupandpostquit; clear; clienttoscreen; clock; comparemodes; copymemory; cos; createclipper; createcompatibledc; created3dapp; created3drm; createdevandview; createdevicefromclipper; createdevicefromd3d; createfont; createframe; createlight; creatematerial; creatematrix; createpalette; createsurface; createviewport; createwindow; createwindowex; crossproduct; d3dappchangedriver; d3dappcheckforlostsurfaces; d3dappcreatefromhwnd; d3dappcreatesurface; d3dappdestroy; d3dappenumeratedddevices; d3dapperrortostring; d3dappfullscreen; d3dappibpptoddbd; d3dappicalldevicecreatecallback; d3dappicalldevicedestroycallback; d3dappicheckforpalettized; d3dappiclearbuffers; d3dappicopyrectlist; d3dappicreatebuffers; d3dappicreatedd; d3dappicreatedevice; d3dappicreatesurface; d3dappicreatezbuffer; d3dappiddenumcallback; d3dappienumdddevices; d3dappienumdisplaymodes; d3dappifilterdisplaymodes; d3dappigetclientwin; d3dappigetsurfdesc; d3dappigettexturehandle; d3dappihandlewm_size; d3dappimergerectlists; d3dappipickdisplaymode; d3dappipickdriver; d3dappirememberwindowsmode; d3dappirestoredispmode; d3dappisetclientsize; d3dappisetcooplevel; d3dappisetdefaults; d3dappisetdisplaymode; d3dappiseterrorstring; d3dappisetrenderstate; d3dappivalidatedirtyrects; d3dappiverifydriverandmode; d3dapplasterrorstring; d3dapppause; d3dappshowbackbuffer; d3dapptotalvideomemory; d3dappwindow; d3dappwindowproc; d3drmerrortostring; d3dval; ddcolormatch; ddcolormatch2; ddcopybitmap; ddcopybitmap2; ddloadbitmap; ddloadbitmap2; ddloadpalette; ddloadpalette2; ddreloadbitmap; ddreloadbitmap2; ddsetcolorkey; ddsetcolorkey2; declare_handle; declare_handle32; defined; defwindowproc; deletedc; deletelight; deletemenu; deleteobject; destroyd3dapp; destroywindow; dialogbox; direct3drmcreate; directdrawcreate; directdrawcreateclipper; directdrawcreatefromdevice; directdrawcreatefromwindow; directdrawdevicefromwindow; directdrawenumerate; directionallight; dispatchmessage; displayframerate; dpf; dsfillsoundbuffer; dsgetwaveresource; dsloadsoundbuffer; dsparsewaveresource; dsreloadsoundbuffer; enablemenuitem; enddialog; endpaint; enumdevicefunc; enumdevices; enumdisplaymodes; enumdisplaymodescallback; enumdisplaymonitors; exttextout; fabs; failed; finddevicecallback; findresource; float; forceupdate; free; freelibrary; getalpha; getambient; getattachedsurface; getattenuation; getcaps; getclientrect; getclipbox; getcolor; getdc; getdevicecaps; getdiffuse; getdirection; getdisplaymode; getdither; getdxversion; getemissive; geterrorstring; getfalloff; getflags; gethandle; getheight; getmenu; getmodulehandle; getmonitorinfo; getobject; getpenumbra; getpixel; getposition; getpower; getprocaddress; getquality; getrampsize; getrange; getspecular; getstockobject; getsubmenu; getsurfacedesc; getsystemmetrics; getsystempaletteentries; gettextextentpoint; gettextextentpoint32; gettexturehandle; gettexturequality; gettrianglesdrawn; getumbra; getupdaterect; getversionex; getwidth; getwindowinstance; getwindowlong; getwindowrect; handleactivate; handlepaint; identitymatrix; idirectsound_createsoundbuffer; idirectsound_duplicatesoundbuffer; idirectsoundbuffer_getstatus; idirectsoundbuffer_lock; idirectsoundbuffer_play; idirectsoundbuffer_release; idirectsoundbuffer_restore; idirectsoundbuffer_setcurrentposition; idirectsoundbuffer_stop; idirectsoundbuffer_unlock; initapp; initfontandtextbuffers; initglobals; initmultiplemonitorstubs; insertmenu; intersectrect; islost; lbclear; lbcreate; lbprintf; lbprintfddrc; lbsize; light; line_list_data; loadaccelerators; loadcursor; loadicon; loadimage; loadlibrary; loadresource; localalloc; localfree; lock; lockresource; lpfnenumproc; lstrcat; lstrcmp; lstrcmpi; lstrcpy; lstrlen; lubksb; ludcmp; make_matrix; malloc; mapwindowpoints; material; matrix_multiply_data; matrixinverse; matrixmult; matrixtranspose; memcpy; memset; merge; messagebox; mmiofourcc; move; movewindow; msg; normalize; onemonitorcallback; onemonitorfromwindow; op_branch_forward; op_exit; op_line_list; op_matrix_multiply; op_nop; op_point_list; op_process_vertices; op_set_status; op_span_list; op_state_light; op_state_render; op_state_transform; op_triangle_list; op_triangleex_list; outputdebugstring; overridedefaults; parallelpointlight; peekmessage; pointlight; postquitmessage; processvertices_data; projectionmatrix; putd3dinstruction; qsort; queryinterface; qword_aligned; rand; readmouse; registerclass; release; releasedc; releasefontandtextbuffers; removefromviewport; render; renderloop; reportd3dapperror; resetframerate; restore; restoredisplaymode; restoresurfaces; ret; rgb; rgb_make; rnd; rotatexmatrix; rotateymatrix; rotatezmatrix; scalematrix; selectobject; sendmessage; set; setalpha; setambient; setasbackground; setascurrent; setattenuation; setback; setbackground; setbkcolor; setbkmode; setbuffercount; setclipper; setcolor; setcolorkey; setcooperativelevel; setdefaulttexturecolors; setdefaulttextureshades; setdiffuse; setdirection; setdisplaymode; setdither; setemissive; setfalloff; setflags; sethwnd; setlight; setlightstate; setmaterial; setmatrix; setpalette; setpenumbra; setpixel; setposition; setpower; setquality; setrampsize; setrange; setrect; setrectempty; setrenderstate; setshades; setspecular; settextcolor; settexturehandle; settexturequality; setumbra; setwindowpos; showwindow; sin; sndobjcreate; sndobjdestroy; sndobjgetfreebuffer; sndobjplay; sndobjstop; spotlight; state_data; stretchblt; strtok; succeeded; switch; systemparametersinfo; text; transformnormal; transformvector; translateaccelerator; translatematrix; translatemessage; triangle_list_data; triangleex_list_data; unlock; update; updatewindow; va_end; va_start; vertex_data; view; viewmatrix; waitmessage; windowfromdc; windowproc; winmain; writeframeratebuffer; writeinfobuffer; wsprintf; wvsprintf; xenumdisplaymonitors; xgetmonitorinfo; xgetsystemmetrics; xmonitorfrompoint; xmonitorfromrect; xmonitorfromwindow; zeromatrix; zeromem; zeromemory