[bb] MediaView Enhanced by superqix [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:38

Previous topic - Next topic

BlitzBot

Title : MediaView Enhanced
Author : superqix
Posted : 1+ years ago

Description : 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.

Code :
Code (blitzbasic) Select
;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...