82 lines
2.0 KiB
C++
82 lines
2.0 KiB
C++
#include "allocate/factory.h"
|
|
#include "code/return.h"
|
|
#include "draw/opengl_service.h"
|
|
|
|
opengl_service_t::opengl_service_t(
|
|
opengl_service_t::configuration_t* configuration_p
|
|
) {
|
|
configuration_m = configuration_p;
|
|
}
|
|
|
|
void_t<opengl_service_t::error_t> opengl_service_t::draw_quad(
|
|
) {
|
|
glClearColor(1.0, 1.0, 1.0, 1.0);
|
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
|
|
glMatrixMode(GL_PROJECTION);
|
|
glLoadIdentity();
|
|
glOrtho(-1., 1., -1., 1., 1., 20.);
|
|
|
|
glMatrixMode(GL_MODELVIEW);
|
|
glLoadIdentity();
|
|
gluLookAt(0., 0., 10., 0., 0., 0., 0., 1., 0.);
|
|
|
|
glBegin(GL_QUADS);
|
|
glColor3f(1., 0., 0.); glVertex3f(-.75, -.75, 0.);
|
|
glColor3f(0., 1., 0.); glVertex3f( .75, -.75, 0.);
|
|
glColor3f(0., 0., 1.); glVertex3f( .75, .75, 0.);
|
|
glColor3f(1., 1., 0.); glVertex3f(-.75, .75, 0.);
|
|
glEnd();
|
|
void_t<opengl_service_t::error_t> void_l;
|
|
void_l.error_m = opengl_service_t::error_t::none;
|
|
return void_l;
|
|
}
|
|
|
|
void_t<opengl_service_t::error_t> opengl_service_t::enable_depth_test(
|
|
) {
|
|
glEnable(
|
|
GL_DEPTH_TEST
|
|
);
|
|
void_t<opengl_service_t::error_t> void_l;
|
|
void_l.error_m = opengl_service_t::error_t::none;
|
|
return void_l;
|
|
}
|
|
|
|
void_t<opengl_service_t::error_t> opengl_service_t::resize_viewport(
|
|
int x,
|
|
int y,
|
|
int width,
|
|
int height
|
|
) {
|
|
void_t<opengl_service_t::error_t> void_l;
|
|
void_l.error_m = opengl_service_t::error_t::none;
|
|
glViewport(
|
|
0,
|
|
0,
|
|
width,
|
|
height
|
|
);
|
|
return void_l;
|
|
}
|
|
|
|
return_t<opengl_service_t::error_t, opengl_service_t*> opengl_service_factory_t::create(
|
|
opengl_service_t::configuration_t* configuration_p
|
|
) {
|
|
opengl_service_t* opengl_service_l = new opengl_service_t(
|
|
configuration_p
|
|
);
|
|
return_t<opengl_service_t::error_t, opengl_service_t*> return_l;
|
|
return_l.error_m = opengl_service_t::error_t::none;
|
|
return_l.value_m = opengl_service_l;
|
|
return return_l;
|
|
}
|
|
|
|
void_t<opengl_service_t::error_t> opengl_service_factory_t::dispose(
|
|
opengl_service_t* opengl_service_p
|
|
) {
|
|
delete opengl_service_p;
|
|
void_t<opengl_service_t::error_t> void_l;
|
|
void_l.error_m = opengl_service_t::error_t::none;
|
|
return void_l;
|
|
}
|