sdl2test.monkey2 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #import "<libc>"
  2. #import "<sdl2>"
  3. #import "<gles20>"
  4. Namespace sdl2test
  5. Using sdl2..
  6. Using gles20..
  7. Class SdlWindow
  8. Field sdlWindow:SDL_Window Ptr
  9. Field sdlGLContext:SDL_GLContext
  10. Method New()
  11. SDL_Init( SDL_INIT_VIDEO )
  12. libc.atexit( SDL_Quit )
  13. SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK,SDL_GL_CONTEXT_PROFILE_ES )
  14. SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION,2 )
  15. SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION,0 )
  16. sdlWindow=SDL_CreateWindow( "SDL2 OpenGL Window",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,640,480,SDL_WINDOW_OPENGL )
  17. sdlGLContext=SDL_GL_CreateContext( sdlWindow )
  18. SDL_GL_MakeCurrent( sdlWindow,sdlGLContext )
  19. End
  20. Method Run()
  21. Repeat
  22. Local event:SDL_Event
  23. While( SDL_PollEvent( Varptr event ) )
  24. Select event.type
  25. Case SDL_WINDOWEVENT
  26. Local wevent:=Cast<SDL_WindowEvent Ptr>( Varptr event )
  27. Select wevent->event
  28. Case SDL_WINDOWEVENT_CLOSE
  29. libc.exit_(0)
  30. End
  31. End
  32. Wend
  33. OnRender()
  34. SDL_GL_SwapWindow( sdlWindow )
  35. Forever
  36. End
  37. Method OnRender()
  38. glClearColor( 1,1,0,1 )
  39. glClear( GL_COLOR_BUFFER_BIT )
  40. End
  41. End
  42. Function Main()
  43. Local window:=New SdlWindow
  44. window.Run()
  45. End