; ------------------------------------------------------------ ; ; PureBasic - ReloadMaterial ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; ;Use [F5] Declare CreateMaterialScript() InitEngine3D() InitSprite() InitKeyboard() InitMouse() ExamineDesktops():dx=DesktopWidth(0)*0.8:dy=DesktopHeight(0)*0.8 OpenWindow(0, 0,0, DesktopUnscaledX(dx),DesktopUnscaledY(dy), " ReloadMaterial - [F5] [Esc] quit",#PB_Window_ScreenCentered) OpenWindowedScreen(WindowID(0), 0, 0, dx, dy, 0, 0, 0) Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models" , #PB_3DArchive_FileSystem) Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem) Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts" , #PB_3DArchive_FileSystem) Parse3DScripts() ;- Mesh LoadMesh(0, "robot.mesh") ;- Entity CreateEntity(0, MeshID(0), #PB_Material_None) ; Camera ; CreateCamera(0, 0, 0, 100, 100) MoveCamera(0, 120, 90, 90, #PB_Absolute) CameraLookAt(0, 0, 50, 0) CameraBackColor(0, RGB(0, 0, 30)) ;- Light ; AmbientColor(RGB(75, 75, 75)) CreateLight(0, RGB(255, 255, 255), 0, 500, 0) Repeat While WindowEvent():Wend If ExamineKeyboard() If KeyboardReleased(#PB_Key_F5) CreateMaterialScript() ReloadMaterial("Test", "ReloadMaterial.material", #True) GetScriptMaterial(0, "Test") SetEntityMaterial(0, MaterialID(0)) EndIf EndIf RenderWorld() FlipBuffers() Until KeyboardPushed(#PB_Key_Escape) Procedure CreateMaterialScript() If CreateFile(0, #PB_Compiler_Home + "examples/3d/Data/Scripts/ReloadMaterial.material") Material$ = "material Test" + #LF$ + "{" + " technique" + " {" + " pass" + " {" + " texture_unit" + " {" + " texture nskingr.jpg" + " }" + " }" + " }" + "}" WriteStringN(0, Material$) CloseFile(0) Else MessageRequester("Information","may not create the file!") EndIf EndProcedure