Dmitry Karasik

NAME

Prima::GLWidget - general purpose GL drawing area / widget

SYNOPSIS

        use OpenGL;
        use Prima qw(Application GLWidget);

        my $window = Prima::MainWindow-> create;
        $window-> insert( GLWidget => 
                pack    => { expand => 1, fill => 'both'},
                onPaint => sub {
                        my $self = shift;
                        glClearColor(0,0,1,1);
                        glClear(GL_COLOR_BUFFER_BIT);
                        glOrtho(-1,1,-1,1,-1,1);
                        
                        glColor3f(1,0,0);
                        glBegin(GL_POLYGON);
                                glVertex2f(-0.5,-0.5);
                                glVertex2f(-0.5, 0.5);
                                glVertex2f( 0.5, 0.5);
                                glVertex2f( 0.5,-0.5);
                        glEnd();
                }
        );

        run Prima;

DESCRIPTION

GLWidget class takes care of all internal mechanics needed for interactions between OpenGL and Prima. The widget is operated as a normal Prima::Widget class, except that all drawing can be done also using gl OpenGL functions.

API

Properties

gl_config %HASHREF

gl_config contains requests to GL visual selector. See description of keys in "Selection of a GL visual" in Prima::OpenGL.

Events

on_size

By default, sets glViewport to the new widget size. Override on_size if that is not desired.

AUTHOR

Dmitry Karasik, <dmitry@karasik.eu.org>.

SEE ALSO

Prima, OpenGL