OpenGL: Difference between revisions

1,886 bytes added ,  6 years ago
Lingo added
(→‎{{header|Racket}}: Make sure to repaint, when canvas is resized.)
(Lingo added)
Line 1,401:
Same as C entry
</pre>
 
=={{header|Lingo}}==
{{libheader|RavOpenGL xtra}}
<lang Lingo>global gOpenGL -- RavOpenGL xtra instance
global GL -- OpenGL constants
 
----------------------------------------
--
----------------------------------------
on startMovie
 
-- Load the OpenGL script xtra
gOpenGL = xtra("RavOpenGL").new()
 
-- Load GL DLL
gOpenGL.RavLoadGL("", "")
 
-- Function omitted in demo code: loads OpenGL constants into namespace GL
LoadConstants()
 
-- Window settings
w = 640
h = 480
_movie.stage.title = "OpenGL Demo"
_movie.stage.titlebarOptions.visible = TRUE
_movie.stage.rect = rect(0, 0, w, h)
_movie.centerStage = TRUE
 
-- Create OpenGL display sprite
m = new(#RavOpenGLDisplay)
_movie.puppetSprite(1, TRUE)
sprite(1).rect = rect(0, 0, w, h)
sprite(1).member = m
_movie.updateStage()
 
-- Create the OpenGL buffer
mainBufferID = gOpenGL.RavCreateBuffer(w, h, 32, 32)
 
-- Set the sharing mode between script and sprite xtras
dcID = gOpenGL.RavGetBufferProp(mainBufferID, #ravGC)
sprite(1).RavShareBuffer(dcID, #true)
 
gOpenGL.glViewport(0, 0, w, h)
gOpenGL.glMatrixMode(GL.PROJECTION)
gOpenGL.glLoadIdentity()
gOpenGL.glOrtho(-30.0, 30.0, -30.0, 30.0, -30.0, 30.0)
gOpenGL.glMatrixMode(GL.MODELVIEW)
 
gOpenGL.glClearColor(0.3, 0.3, 0.3, 0.0)
gOpenGL.glClear(GL.COLOR_BUFFER_BIT + GL.DEPTH_BUFFER_BIT)
gOpenGL.glShadeModel(GL.SMOOTH)
gOpenGL.glLoadIdentity()
gOpenGL.glTranslatef(-15.0, -15.0, 0.0)
gOpenGL.glBegin(GL.TRIANGLES)
gOpenGL.glColor3f(1.0, 0.0, 0.0)
gOpenGL.glVertex2f(0.0, 0.0)
gOpenGL.glColor3f(0.0, 1.0, 0.0)
gOpenGL.glVertex2f(30.0, 0.0)
gOpenGL.glColor3f(0.0, 0.0, 1.0)
gOpenGL.glVertex2f(0.0, 30.0)
gOpenGL.glEnd()
gOpenGL.glFlush()
 
-- Show the window
_movie.stage.visible = TRUE
end</lang>
 
=={{header|Lua}}==
Anonymous user