Code archives/Miscellaneous/MediaView Enhanced
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Attached is a new version of the MediaView that I enhanced with B3D support, spot and ambient light control, zoom in and out, Mesh Width, Height, and Depth data and some Windows XP fixes for Drag and Drop. Plus this version doesn't scale the model, so what you see (size wise) is what you get. | |||||
;Blitz media viewer.
;
;Create executable in 'bin'
AppTitle CommandLine$()
fil$=Trim$(Replace(Lower$( CommandLine$()),Chr$(34),Chr$(32)))
index=Instr( fil$,"." )
If index>0 ext$=Mid$( fil$,index+1 )
Select ext$
Case "x","3ds","b3d"
ShowModel( fil$,False )
Case "md2"
ShowModel( fil$,True )
Case "bmp","jpg","png","pcx","tga","iff"
ShowImage( fil$ )
Case "wav"
ShowSound( fil$ )
Case "mp3","mid","mod","x3m","xm","it"
ShowMusic( fil$ )
Default
RuntimeError "Unknown File Extension ("+ext$+")"
End Select
End
Function ShowModel( fil$,md2 )
If Windowed3D()
Graphics3D 512,384,0,2
Else
Graphics3D 640,480,0,1
EndIf
If md2
model=LoadMD2( fil$ )
; If model ScaleEntity model,.025,.025,.025
Else
model=LoadMesh( fil$ )
; If model FitMesh model,-1,-1,-1,2,2,2,True
EndIf
If model=0 RuntimeError "Unable to load 3D mesh:"+fil$
sc=CountSurfaces(model)
For k=1 To sc
vc=vc+CountVertices( GetSurface( model,k ) )
tc=tc+CountTriangles( GetSurface( model,k ) )
Next
camera=CreateCamera()
CameraClsColor camera,0,0,64
CameraRange camera,.01,10
xr#=0:yr#=0:z#=2.1
light=CreateLight()
TurnEntity light,45,45,0
bright = 255
abright = 128
Repeat
RotateEntity model,xr,yr,0
PositionEntity model,0,0,z
If bright > 255 Then bright = 255
If bright < -255 Then bright = -255
LightColor light,bright,bright,bright
If abright > 255 Then abright = 255
If abright < 0 Then abright = 0
AmbientLight abright,abright,abright
UpdateWorld
RenderWorld
Text 10,10,"Triangles: "+tc+" Vertices: "+vc+" Surfaces: "+sc
Text 10,22,"Point Light (-/+): "+bright
Text 10,34,"Ambient Light ([/]): "+abright
Text 10,46,"Mesh Width: "+MeshWidth(model)
Text 10,58,"Mesh Height: "+MeshHeight(model)
Text 10,70,"Mesh Depth: "+MeshDepth(model)
Text 10,82,"Zoom (a/z): "+z
Flip
key=False
Repeat
If KeyHit(1) End
If KeyDown(200) xr=xr-3:key=True
If KeyDown(208) xr=xr+3:key=True
If KeyDown(203) yr=yr+3:key=True
If KeyDown(205) yr=yr-3:key=True
If KeyDown( 30) z=z-.1:key=True
If KeyDown( 44) z=z+.1:key=True
If KeyDown( 12) bright=bright-1:key=True
If KeyDown( 13) bright=bright+1:key=True
If KeyDown( 26) abright=abright-1:key=True
If KeyDown( 27) abright=abright+1:key=True
If Not key WaitKey
Until key
Forever
End Function
Function ShowImage( fil$ )
Graphics 400,300,0,2
SetBuffer BackBuffer()
image=LoadImage( fil$ )
If image=0 RuntimeError "Unable to load image:"+fil$
MidHandle image
x=200:y=150:t=4
Repeat
Cls
DrawImage image,x,y
Flip
key=False
Repeat
If KeyHit(1) End
If KeyDown(200) y=y-t:key=True
If KeyDown(208) y=y+t:key=True
If KeyDown(203) x=x-t:key=True
If KeyDown(205) x=x+t:key=True
If Not key WaitKey
Until key
Forever
End Function
Function ShowSound( fil$ )
sound=LoadSound( fil$ )
If sound=0 RuntimeError "Unable to load sound:"+fil$
Repeat
PlaySound sound
WaitKey
If KeyHit(1) End
Forever
End Function
Function ShowMusic( fil$ )
music=PlayMusic( fil$ )
If music=0 RuntimeError "Unable to play music: "+fil$
WaitKey
End Function |
Comments
None.
Code Archives Forum