84 lines
2.0 KiB
C++
84 lines
2.0 KiB
C++
#include "color.h"
|
|
#include "osdtext.h"
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include "GL/glew.h"
|
|
#include "GLFW/glfw3.h"
|
|
|
|
using namespace CGL;
|
|
|
|
int main(int argc, char *argv[]) {
|
|
|
|
GLFWwindow* window;
|
|
OSDText* osd_text;
|
|
|
|
// init glfw
|
|
if( !glfwInit() ) {
|
|
fprintf(stderr, "Error: could not initialize GLFW!");
|
|
exit( EXIT_FAILURE );
|
|
}
|
|
|
|
// create window
|
|
window = glfwCreateWindow( 640, 480, "TEXT", NULL, NULL );
|
|
if (!window) {
|
|
fprintf(stderr, "Error: could not create window!");
|
|
glfwTerminate();
|
|
exit( EXIT_FAILURE );
|
|
}
|
|
|
|
// set context
|
|
glfwMakeContextCurrent( window );
|
|
glfwSwapInterval(1);
|
|
|
|
// init glew
|
|
GLenum glew_status = glewInit();
|
|
if (GLEW_OK != glew_status) {
|
|
fprintf(stderr, "Error: %s\n", glewGetErrorString(glew_status));
|
|
return 1;
|
|
}
|
|
|
|
if (!GLEW_VERSION_2_0) {
|
|
fprintf(stderr, "No support for OpenGL 2.0 found\n");
|
|
return 1;
|
|
}
|
|
|
|
// enable alpha blending
|
|
glEnable(GL_BLEND);
|
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
|
|
// create on-screen display text
|
|
osd_text = new OSDText();
|
|
osd_text->init();
|
|
osd_text->resize(640, 480);
|
|
|
|
// add lines
|
|
const char* text = "The Quick Brown Fox Jumps Over The Lazy Dog.";
|
|
osd_text->add_line(-0.95, 0.85, text, 26, Color::White);
|
|
osd_text->add_line(-0.95, 0.70, text, 24, Color(0.75,0.75,0.75,1));
|
|
osd_text->add_line(-0.95, 0.58, text, 22, Color(0.5,0.5,0.5,1));
|
|
osd_text->add_line(-0.95, 0.46, text, 20, Color(1,0,0,1));
|
|
osd_text->add_line(-0.95, 0.34, text, 18, Color(0,1,0,1));
|
|
osd_text->add_line(-0.95, 0.25, text, 16, Color(0,0,1,1));
|
|
osd_text->add_line(-0.95, 0.16, text, 14, Color(1,1,0,1));
|
|
osd_text->add_line(-0.95, 0.08, text, 12, Color(0,1,1,1));
|
|
osd_text->add_line(-0.95, 0.00, text, 10, Color(1,0,1,1));
|
|
|
|
while(!glfwWindowShouldClose(window)) {
|
|
|
|
// clear
|
|
glClear(GL_COLOR_BUFFER_BIT);
|
|
|
|
// render text OSD
|
|
osd_text->render();
|
|
|
|
// swap buffers
|
|
glfwSwapBuffers(window);
|
|
|
|
// poll events
|
|
glfwPollEvents();
|
|
}
|
|
|
|
return 0;
|
|
}
|