This seems to be working for me. On Sun, Sep 27, 2009 at 2:39 AM, Christian Schmid <csch...@rapidshare.com>wrote:
> Hi. > > Thank you for your valuable hints. On the one hand I want to use VBOs > (which makes me force using POGL as you said) but on the other hand I > want to continue using SDL for all the nice things it provides > (furthermore it seems glut is a bit broken and no competition to SDL). > So I am now trying to combine both worlds. Maybe I am doing something > stupid wrong, but it seems there is some buffer problems when not using > SDL::OpenGL. At least I don't see any window when I say "opengl => 1" > and I see a black window when I say "opengl => 0". > > I really appreciate your help in this matter. For your coincidence, I > set up a really short code and attached it, so you can immediately see > whats wrong. Basically its just some cubes spinning around. Feel free to > comment right into the code if you want. > > > > #!/usr/bin/perl > > use strict; > use warnings; > use OpenGL qw(:all); > use SDL::App; > use SDL::Event; > > my ($SDLAPP, $WIDTH, $HEIGHT, $SDLEVENT); > > $| = 1; > $WIDTH = 1024; > $HEIGHT = 768; > $SDLAPP = SDL::App->new(-title => "Test shit", -width => $WIDTH, -height > => $HEIGHT, -gl => 1); > $SDLEVENT = SDL::Event->new; > > SDL::ShowCursor(0); > glEnable(GL_DEPTH_TEST); > glMatrixMode(GL_PROJECTION); > glLoadIdentity; > gluPerspective(60, $WIDTH / $HEIGHT, 1, 1000); > glTranslatef(0, 0, -20); > > > > while (1) { > &handlepolls; > glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); > glRotatef(.1, 1, 1, 1); > &drawscene; > $SDLAPP->sync; > } > > > > sub drawscene { > my ($color, $x, $y, $z); > > for (-2 .. 2) { > glPushMatrix; > glTranslatef($_ * 3, 0, 0); > glColor3f(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 $face (0..5) { > foreach $vertex (0..3) { > $index = $indices[4 * $face + $vertex]; > $coords = $vertices[$index]; > glVertex3f(@$coords); > } > } > > glEnd; > > return ""; > } > > > > > sub handlepolls { > my ($type, $key); > > $SDLEVENT->pump; > > while ($SDLEVENT->poll) { > $type = $SDLEVENT->type(); > $key = ($type == 2 or $type == 3) ? $SDLEVENT->key_name : ""; > > if ($type == 4) { printf("You moved the mouse! x=%s y=%s xrel=%s > yrel=%s\n", $SDLEVENT->motion_x, $SDLEVENT->motion_y, > $SDLEVENT->motion_xrel, $SDLEVENT->motion_yrel) } > elsif ($type == 2) { print "You are pressing $key\n" } > elsif ($type == 3) { print "You released $key\n" } > elsif ($type == 12) { exit } > else { print "TYPE $type UNKNOWN!\n" } > > if ($type == 2) { > if ($key eq "q" or $key eq "escape") { exit } > } > } > > return ""; > } > > > Kartik Thakore schrieb: > > > > On 26-Sep-09, at 4:06 AM, Christian Schmid <csch...@rapidshare.com> > > wrote: > > > >> Hi Kartik, > >> > >> Thank you for your reply. I am new to OpenGL programming. I used to > >> write everything in Perl. No matter if its a network stack or a fully > >> blown web-custimizable FTP server. Now I am trying to code blast-away > >> 3d-applications... in Perl. Some people say this is crazy, but I am sure > >> as soon as I have created an amazing framework, it will work as well as > >> C-applications do. > > It should! > >> > >> > >> That said, I tried figuring out what I can do in Perl without using Perl > >> too much for the "loads and loads of stupid vertex work". I also rely on > >> caching as good as I can, especially on models with 1 Mio Polygons, I > >> need the VBOs. Unfortunately it seems the VBOs are only part of OpenGL > >> 1.5 or higher, and since its not implemented in Perl-SDL, I suppose > >> Perl-SDL does not support 1.5 yet? > > I don't think so I would recommend looking in to Perl OpenGL. The > > module is opengl on cpan. > >> > >> > >> Sure, I could just try to implement it myself in Perl-SDL. But I think > >> this is not the very best solution and (since I don't know anything > >> about Perl-SDLs interna, nor libsdl) this would take a very long time I > >> suppose. > > If your concern is only opengl then the module I mentioned above, > > POGL, is your best bet. > >> > >> > >> So to bring it to the point: What OpenGL version is supported (at least > >> glGenBuffers does not work). When will OpenGl 3.1 be supported? ;) Most > >> stunning effects are only possible with the latest revision I suppose. > > POGL has more features then SDL Perl's implementation. We are actually > > considering to move our base to theirs. > >> > >> > >> Do people widely use OpenGL with Perl-SDL? > >> > > I haven't seen extensive use so far. I could be wrong as I have only > > started maintaining a month ago. > >> What would it take for you to implement the newest OpenGL technology in > >> Perl-SDL? > > Help to migrate to POGL. Also a latest system which can handle the > > latest video card would help. > >> > >> > >> Do you accept motivation-pushing donations in case its much work? > > Give a shout out to POGL devs. I am more interested in making SDL Perl > > work well with their OpenGL. > >> > >> > >> Are you still highly interested in spending time in Perl-SDL? > >> > > Yup :). If you are interested in SDL too besides just OpenGL, would > > you consider setting up bounties that you would pay for and the core > > devs of SDL would check? > > > > I have wanted to sell some games and pump money in the form of > > bounties into SDL Perl, but I have been busy coding internals. > >> What is your current occupation if I may ask? > > I am an intern/student. That's all I am saying :p > >> > >> > >> - Christian > >> > >> > >> Kartik Thakore schrieb: > >>> Hi Christian, > >>> > >>> Kartik Thakore > >>> > >>> On 26-Sep-09, at 2:39 AM, Christian Schmid <csch...@rapidshare.com> > >>> wrote: > >>> > >>>> Hello. > >>>> > >>>> As far as I have found out, you are the main maintainer of > >>>> perl-sdl. Is > >>>> this correct? > >>> Yes this is correct. > >>>> > >>>> > >>>> I have some questions about OpenGL V1.5 and later implementations in > >>>> Perl-SDL, the future about Perl-SDL and possible donations to the > >>>> respective hard working programmers, who have made it possible to > >>>> produce high-performance OpenGL applications within Perl. > >>>> I am looking > >>>> forward for your reply. > >>>> > >>> What are your questions I would be glad to answer them? > >>>> Best regards, > >>>> Christian Schmid > >>>> > >>> Regards > >>> > > > > >