Mesa 7.2 (Default branch)


 
Thread Tools Search this Thread
Special Forums News, Links, Events and Announcements Software Releases - RSS News Mesa 7.2 (Default branch)
# 1  
Old 09-26-2008
Mesa 7.2 (Default branch)

Mesa is a 3-D graphics library which uses the OpenGL API (Application Programming Interface). Mesa cannot be called an implementation of OpenGL since the author did not obtain an OpenGL license from SGI. Furthermore, Mesa cannot claim OpenGL conformance since the conformance tests are only available to OpenGL licensees. Despite these technical/legal terms, you may find Mesa to be a valid alternative to OpenGL. Most applications written for OpenGL can use Mesa instead without changing the source code. License: OSI Approved Changes:
The OpenGL 2.1 API is now implemented, though some drivers don't support it yet. Support for the Intel G41 chipset was added. Several bugs were fixed. Image

Image

More...
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question
pods::SDL::Cookbook::OpenGL(3pm)			User Contributed Perl Documentation			  pods::SDL::Cookbook::OpenGL(3pm)

NAME
SDL::Cookbook::OpenGL - Using SDL with OpenGL CATEGORY
Cookbook DESCRIPTION
As of release 2.5 SDL no longer maintains it's own bindings of OpenGL. Support for OpenGL has been moved over to a more mature implementation. This implementation is the POGL project. OpenGL is faster and more complete; and works with SDL seamlessly. EXAMPLE Expanded from Floyd-ATC's OpenGL example. use strict; use warnings; use SDL; use SDLx::App; use SDL::Mouse; use SDL::Video; use SDL::Events; use SDL::Event; use OpenGL qw(:all); You can use OpenGL as needed here. my ($SDLAPP, $WIDTH, $HEIGHT, $SDLEVENT); $| = 1; $WIDTH = 1024; $HEIGHT = 768; $SDLAPP = SDLx::App->new(title => "OpenGL App", width => $WIDTH, height => $HEIGHT, gl => 1); $SDLEVENT = SDL::Event->new; SDLx::App can start an OpenGL application with the parameter gl => 1. glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity; gluPerspective(60, $WIDTH / $HEIGHT, 1, 1000); glTranslatef(0, 0, -20); Above we enable GL and set the correct perspective while(1) { &handlepolls; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glRotatef(.1, 1, 1, 1); &drawscene; $SDLAPP->sync; } For SDLx::App sync handles the GL buffer clean. sub drawscene { my ($color, $x, $y, $z); for (-2 .. 2) { glPushMatrix; glTranslatef($_ * 3, 0, 0); glColor3d(1, 0, 0); &draw_cube; glPopMatrix; } return ""; } sub draw_cube { my (@indices, @vertices, $face, $vertex, $index, $coords); @indices = qw(4 5 6 7 1 2 6 5 0 1 5 4 0 3 2 1 0 4 7 3 2 3 7 6); @vertices = ([-1, -1, -1], [ 1, -1, -1], [ 1, 1, -1], [-1, 1, -1], [-1, -1, 1], [ 1, -1, 1], [ 1, 1, 1], [-1, 1, 1]); glBegin(GL_QUADS); foreach my $face (0..5) { foreach my $vertex (0..3) { $index = $indices[4 * $face + $vertex]; $coords = $vertices[$index]; glVertex3d(@$coords); } } glEnd; return ""; } Below we can use SDL::Events as normal: sub handlepolls { my ($type, $key); SDL::Events::pump_events(); while (SDL::Events::poll_event($SDLEVENT)) { $type = $SDLEVENT->type(); $key = ($type == 2 or $type == 3) ? $SDLEVENT->key_sym : ""; if ($type == 4) { printf("You moved the mouse! x=%s y=%s xrel=%s yrel=%s ", $SDLEVENT->motion_x, $SDLEVENT->motion_y, $SDLEVENT->motion_xrel, $SDLEVENT->motion_yrel) } elsif ($type == 2) { print "You are pressing $key " } elsif ($type == 3) { print "You released $key " } elsif ($type == 12) { exit } else { print "TYPE $type UNKNOWN! " } if ($type == 2) { if ($key eq "q" or $key eq "escape") { exit } } } return ""; } SEE ALSO
perl SDLx::App OpenGL AUTHORS
See "AUTHORS" in SDL. perl v5.14.2 2012-05-28 pods::SDL::Cookbook::OpenGL(3pm)