updated oglft to version 0.9
parent
bc53a7fd75
commit
cf2fe0e32d
|
@ -1,5 +1,3 @@
|
||||||
Authors of OGLFT
|
Author of OGLFT
|
||||||
|
|
||||||
Allen Barnett
|
Allen Barnett <oglft@lignumcomputing.com>
|
||||||
Oliver Bock
|
|
||||||
Nigel Stewart
|
|
||||||
|
|
|
@ -7,14 +7,14 @@ Set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake )
|
||||||
FIND_PACKAGE( OpenGL REQUIRED )
|
FIND_PACKAGE( OpenGL REQUIRED )
|
||||||
FIND_PACKAGE( FreeType2 REQUIRED )
|
FIND_PACKAGE( FreeType2 REQUIRED )
|
||||||
|
|
||||||
if( ENABLE_QT )
|
IF( ENABLE_QT )
|
||||||
find_package( Qt REQUIRED )
|
FIND_PACKAGE( QT REQUIRED )
|
||||||
if( DESIRED_QT_VERSION EQUAL 3 )
|
IF( DESIRED_QT_VERSION EQUAL 3 )
|
||||||
find_package( KDE3 REQUIRED )
|
FIND_PACKAGE( KDE3 REQUIRED )
|
||||||
endif( DESIRED_QT_VERSION EQUAL 3 )
|
ENDIF( DESIRED_QT_VERSION EQUAL 3 )
|
||||||
endif( ENABLE_QT )
|
ENDIF( ENABLE_QT )
|
||||||
|
|
||||||
if( ENABLE_GLE )
|
If( ENABLE_GLE )
|
||||||
find_package( GLE )
|
find_package( GLE )
|
||||||
endif( ENABLE_GLE )
|
endif( ENABLE_GLE )
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
New in OGLFT version 0.9
|
||||||
|
|
||||||
|
* Moved my CVS repository so this is mostly a resync.
|
||||||
|
|
||||||
|
* A couple of minor changes to configure.ac for RH Linux 9, too.
|
||||||
|
|
||||||
New in OGLFT version 0.8
|
New in OGLFT version 0.8
|
||||||
|
|
||||||
* Added the ability to draw numbers with a format à la printf.
|
* Added the ability to draw numbers with a format à la printf.
|
||||||
|
|
|
@ -233,13 +233,13 @@ namespace OGLFT {
|
||||||
if ( new_value < x_min_ ) x_min_ = new_value;
|
if ( new_value < x_min_ ) x_min_ = new_value;
|
||||||
|
|
||||||
new_value = b.y_min_ + advance_.dy_;
|
new_value = b.y_min_ + advance_.dy_;
|
||||||
if ( new_value < y_min_ ) y_min_ = new_value;
|
if ( advance_.dy_ != 0. && new_value < y_min_ ) y_min_ = new_value;
|
||||||
|
|
||||||
new_value = b.x_max_ + advance_.dx_;
|
new_value = b.x_max_ + advance_.dx_;
|
||||||
if ( new_value > x_max_ ) x_max_ = new_value;
|
if ( new_value > x_max_ ) x_max_ = new_value;
|
||||||
|
|
||||||
new_value = b.y_max_ + advance_.dy_;
|
new_value = b.y_max_ + advance_.dy_;
|
||||||
if ( new_value > y_max_ ) y_max_ = new_value;
|
if ( advance_.dy_ != 0. && new_value > y_max_ ) y_max_ = new_value;
|
||||||
|
|
||||||
advance_.dx_ += b.advance_.dx_;
|
advance_.dx_ += b.advance_.dx_;
|
||||||
advance_.dy_ += b.advance_.dy_;
|
advance_.dy_ += b.advance_.dy_;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Demo3UnicodeExample.h: Sample font for demo3 example.
|
* Demo3UnicodeExample.h: Sample font for demo3 example.
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: Demo3UnicodeExample.h,v 1.2 2002/07/11 20:56:06 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* demo.cpp: Demo of the OGLFT library
|
* demo.cpp: Demo of the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: demo.cpp,v 1.4 2002/07/11 20:58:38 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -20,8 +20,13 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
#include <OGLFT.h>
|
#include <OGLFT.h>
|
||||||
|
|
||||||
static const char* USAGE = " fontfile";
|
static const char* USAGE = " fontfile";
|
||||||
|
@ -49,11 +54,12 @@ static OGLFT::TranslucentTexture* translucent_texture_face;
|
||||||
static float dy;
|
static float dy;
|
||||||
static int viewport_width;
|
static int viewport_width;
|
||||||
static int viewport_height;
|
static int viewport_height;
|
||||||
|
static int x_rot, y_rot, z_rot;
|
||||||
|
|
||||||
static void init ( int /*argc*/, char* argv[] )
|
static void init ( int argc, char* argv[] )
|
||||||
{
|
{
|
||||||
std::cout << glGetString( GL_VENDOR ) << " " << glGetString( GL_RENDERER ) << " "
|
cout << glGetString( GL_VENDOR ) << " " << glGetString( GL_RENDERER ) << " "
|
||||||
<< glGetString( GL_VERSION ) << std::endl;
|
<< glGetString( GL_VERSION ) << endl;
|
||||||
|
|
||||||
commands_face = new OGLFT::Monochrome( argv[1], point_size / 2. );
|
commands_face = new OGLFT::Monochrome( argv[1], point_size / 2. );
|
||||||
commands_face->setHorizontalJustification( OGLFT::Face::CENTER );
|
commands_face->setHorizontalJustification( OGLFT::Face::CENTER );
|
||||||
|
@ -63,7 +69,7 @@ static void init ( int /*argc*/, char* argv[] )
|
||||||
monochrome_face->setForegroundColor( 1., 0., 0., 1. );
|
monochrome_face->setForegroundColor( 1., 0., 0., 1. );
|
||||||
|
|
||||||
if ( !monochrome_face->isValid() ) {
|
if ( !monochrome_face->isValid() ) {
|
||||||
std::cerr << "failed to open face. exiting." << std::endl;
|
cerr << "failed to open face. exiting." << endl;
|
||||||
exit( 1 );
|
exit( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +315,12 @@ static void display ( void )
|
||||||
glutSwapBuffers();
|
glutSwapBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void key ( unsigned char key, int /*x*/, int /*y*/ )
|
static void idle ( void )
|
||||||
|
{
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void key ( unsigned char key, int x, int y )
|
||||||
{
|
{
|
||||||
switch ( key ) {
|
switch ( key ) {
|
||||||
case 'a':
|
case 'a':
|
||||||
|
@ -355,7 +366,7 @@ static void done ( void )
|
||||||
int main ( int argc, char* argv[] )
|
int main ( int argc, char* argv[] )
|
||||||
{
|
{
|
||||||
if ( argc != 2 ) {
|
if ( argc != 2 ) {
|
||||||
std::cerr << argv[0] << USAGE << std::endl;
|
cerr << argv[0] << USAGE << endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -371,7 +382,9 @@ int main ( int argc, char* argv[] )
|
||||||
glutReshapeFunc( reshape );
|
glutReshapeFunc( reshape );
|
||||||
glutDisplayFunc( display );
|
glutDisplayFunc( display );
|
||||||
glutKeyboardFunc( key );
|
glutKeyboardFunc( key );
|
||||||
|
#if 0
|
||||||
|
glutIdleFunc( idle );
|
||||||
|
#endif
|
||||||
glutMainLoop();
|
glutMainLoop();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* demo2.cpp: Second Demo of the OGLFT library
|
* demo2.cpp: Second Demo of the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: demo2.cpp,v 1.7 2003/10/01 14:04:49 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -18,9 +18,13 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
#include <OGLFT.h>
|
#include <OGLFT.h>
|
||||||
|
|
||||||
#include FT_MULTIPLE_MASTERS_H
|
#include FT_MULTIPLE_MASTERS_H
|
||||||
|
@ -39,7 +43,7 @@ static OGLFT::Monochrome* oglft_face;
|
||||||
static int viewport_width;
|
static int viewport_width;
|
||||||
static int viewport_height;
|
static int viewport_height;
|
||||||
|
|
||||||
static void init ( int /*argc*/, char* argv[] )
|
static void init ( int argc, char* argv[] )
|
||||||
{
|
{
|
||||||
std::cout << glGetString( GL_VENDOR ) << " " << glGetString( GL_RENDERER ) << " "
|
std::cout << glGetString( GL_VENDOR ) << " " << glGetString( GL_RENDERER ) << " "
|
||||||
<< glGetString( GL_VERSION ) << std::endl;
|
<< glGetString( GL_VERSION ) << std::endl;
|
||||||
|
@ -74,8 +78,9 @@ static void init ( int /*argc*/, char* argv[] )
|
||||||
oglft_face = new OGLFT::Filled( ft_face, 14 );
|
oglft_face = new OGLFT::Filled( ft_face, 14 );
|
||||||
#else
|
#else
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
oglft_face = new OGLFT::Monochrome( ft_face, 14 );
|
oglft_face = new OGLFT::Monochrome( ft_face, 14 );
|
||||||
#endif
|
#endif
|
||||||
oglft_face->setHorizontalJustification( OGLFT::Face::LEFT );
|
oglft_face->setHorizontalJustification( OGLFT::Face::LEFT );
|
||||||
|
@ -126,7 +131,7 @@ static void display ( void )
|
||||||
|
|
||||||
for ( int j = 0; j <= 4; j++ ) {
|
for ( int j = 0; j <= 4; j++ ) {
|
||||||
FT_Set_MM_Design_Coordinates( ft_face, master_info.num_axis, axis_averages );
|
FT_Set_MM_Design_Coordinates( ft_face, master_info.num_axis, axis_averages );
|
||||||
snprintf( buffer, sizeof(buffer), " Style at axis = %ld\n", axis_averages[i] );
|
snprintf( buffer, sizeof(buffer), " Style at axis = %d\n", axis_averages[i] );
|
||||||
y -= 20.;
|
y -= 20.;
|
||||||
oglft_face->draw( 0., y, buffer );
|
oglft_face->draw( 0., y, buffer );
|
||||||
|
|
||||||
|
@ -140,7 +145,7 @@ static void display ( void )
|
||||||
glutSwapBuffers();
|
glutSwapBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void key ( unsigned char key, int /*x*/, int /*y*/ )
|
static void key ( unsigned char key, int x, int y )
|
||||||
{
|
{
|
||||||
switch ( key ) {
|
switch ( key ) {
|
||||||
case 'q':
|
case 'q':
|
||||||
|
@ -153,6 +158,11 @@ static void key ( unsigned char key, int /*x*/, int /*y*/ )
|
||||||
glutPostRedisplay();
|
glutPostRedisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void idle ( void )
|
||||||
|
{
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
static void done ( void )
|
static void done ( void )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -176,7 +186,9 @@ int main ( int argc, char* argv[] )
|
||||||
glutReshapeFunc( reshape );
|
glutReshapeFunc( reshape );
|
||||||
glutDisplayFunc( display );
|
glutDisplayFunc( display );
|
||||||
glutKeyboardFunc( key );
|
glutKeyboardFunc( key );
|
||||||
|
#if 0
|
||||||
|
glutIdleFunc( idle );
|
||||||
|
#endif
|
||||||
glutMainLoop();
|
glutMainLoop();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* demo3.cpp: Third Demo of the OGLFT library
|
* demo3.cpp: Third Demo of the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: demo3.cpp,v 1.6 2003/10/01 14:05:08 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -19,20 +19,21 @@
|
||||||
*/
|
*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
#include <qapplication.h>
|
#include <qapplication.h>
|
||||||
#include <qimage.h>
|
#include <qimage.h>
|
||||||
|
|
||||||
#include "OGLFT.h"
|
#include <config.h>
|
||||||
#include "vignette.h"
|
#include <OGLFT.h>
|
||||||
#include "vignette.moc"
|
#include <vignette.h>
|
||||||
|
|
||||||
#include "Demo3UnicodeExample.h"
|
#include <Demo3UnicodeExample.h>
|
||||||
#include "Demo3UnicodeExample2.h"
|
#include <Demo3UnicodeExample2.h>
|
||||||
|
|
||||||
class Vignette0 : public Vignette {
|
class Vignette0 : public Vignette {
|
||||||
|
|
||||||
static const unsigned int FRAME_COUNT = 32;
|
static const unsigned int FRAME_COUNT = 33;
|
||||||
static const unsigned int FRAME_RATE = 16;
|
static const unsigned int FRAME_RATE = 16;
|
||||||
|
|
||||||
const char* text_;
|
const char* text_;
|
||||||
|
@ -583,7 +584,9 @@ public:
|
||||||
std::cout << "Vignette 5" << std::endl;
|
std::cout << "Vignette 5" << std::endl;
|
||||||
|
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
glEnable( GL_LIGHT0 );
|
glEnable( GL_LIGHT0 );
|
||||||
}
|
}
|
||||||
|
@ -946,13 +949,15 @@ public:
|
||||||
{
|
{
|
||||||
std::cout << "Vignette 8" << std::endl;
|
std::cout << "Vignette 8" << std::endl;
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
glPushAttrib( GL_POLYGON_BIT );
|
glPushAttrib( GL_POLYGON_BIT );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( unsigned int frame_number )
|
void draw ( unsigned int frame_number )
|
||||||
{
|
{
|
||||||
char save_char = '\0';
|
char save_char;
|
||||||
if ( frame_number < text_length_ ) {
|
if ( frame_number < text_length_ ) {
|
||||||
save_char = text_[frame_number];
|
save_char = text_[frame_number];
|
||||||
text_[frame_number] = '\0';
|
text_[frame_number] = '\0';
|
||||||
|
@ -1177,18 +1182,14 @@ public:
|
||||||
face_ = new OGLFT::Translucent( fontfile, 18, 75 );
|
face_ = new OGLFT::Translucent( fontfile, 18, 75 );
|
||||||
|
|
||||||
// Now, create a second face, in this case, using a built-in font.
|
// Now, create a second face, in this case, using a built-in font.
|
||||||
#if 0
|
|
||||||
FT_Library library = OGLFT::Library::instance();
|
FT_Library library = OGLFT::Library::instance();
|
||||||
FT_Face ft_face;
|
FT_Face ft_face;
|
||||||
FT_New_Memory_Face( library, Demo3UnicodeExample_ttf,
|
int a = FT_New_Memory_Face( library, Demo3UnicodeExample_ttf,
|
||||||
Demo3UnicodeExample_ttf_size, 0, &ft_face );
|
Demo3UnicodeExample_ttf_size, 0, &ft_face );
|
||||||
|
cout << "The return value from new mem face is " << a << endl;
|
||||||
|
cout << "Ft face is " << ft_face << endl;
|
||||||
face_->addAuxiliaryFace( ft_face );
|
face_->addAuxiliaryFace( ft_face );
|
||||||
#else
|
|
||||||
// Somewhat simpler with new interface.
|
|
||||||
face_->addAuxiliaryFace( Demo3UnicodeExample_ttf,
|
|
||||||
Demo3UnicodeExample_ttf_size );
|
|
||||||
#endif
|
|
||||||
face_->setForegroundColor( 0., .5, .75 );
|
face_->setForegroundColor( 0., .5, .75 );
|
||||||
|
|
||||||
// Manually create the equation in UNICODE points
|
// Manually create the equation in UNICODE points
|
||||||
|
@ -1237,7 +1238,9 @@ public:
|
||||||
std::cout << "Vignette 11" << std::endl;
|
std::cout << "Vignette 11" << std::endl;
|
||||||
|
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
glEnable( GL_BLEND );
|
glEnable( GL_BLEND );
|
||||||
}
|
}
|
||||||
|
@ -1251,19 +1254,15 @@ public:
|
||||||
glTranslated( left, 0, 0 );
|
glTranslated( left, 0, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( unsigned int /*frame_number*/ )
|
void draw ( unsigned int frame_number )
|
||||||
{
|
{
|
||||||
face_->setHorizontalJustification( OGLFT::Face::LEFT );
|
face_->setHorizontalJustification( OGLFT::Face::LEFT );
|
||||||
face_->draw( 2., 128., "This frame demonstrates two...no three...features:" );
|
face_->draw( 2., 128., "This frame demonstrates two...no three...features:" );
|
||||||
face_->draw( 2., 96., "1. Drawing a UNICODE string (using Qt's QString)." );
|
face_->draw( 2., 96., "1. Drawing a UNICODE string (using Qt's QString)." );
|
||||||
face_->draw( 2., 64., "2. Combining two fonts to cover more UNICODE points." );
|
face_->draw( 2., 64., "2. Combining two fonts to cover more UNICODE points." );
|
||||||
face_->draw( 2., 32., "3. Embedding a font in the program." );
|
face_->draw( 2., 32., "3. Embedding a font in the program." );
|
||||||
|
|
||||||
face_->setHorizontalJustification( OGLFT::Face::CENTER );
|
face_->setHorizontalJustification( OGLFT::Face::CENTER );
|
||||||
face_->draw( 250., 0., equation_ );
|
face_->draw( 250., 0., equation_ );
|
||||||
|
|
||||||
face_->setHorizontalJustification( OGLFT::Face::LEFT );
|
|
||||||
face_->draw( 2., -32., "Thanks to Oliver Bock for the font-in-memory code!" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void finish ( void )
|
void finish ( void )
|
||||||
|
@ -1293,7 +1292,7 @@ public:
|
||||||
#else
|
#else
|
||||||
face_ = new OGLFT::Filled( fontfile, 18, 75 );
|
face_ = new OGLFT::Filled( fontfile, 18, 75 );
|
||||||
#endif
|
#endif
|
||||||
face_->setForegroundColor( 0., .75, .75 );
|
face_->setForegroundColor( 0., .5, .75 );
|
||||||
|
|
||||||
// Now, create a second face, in this case, using a built-in font.
|
// Now, create a second face, in this case, using a built-in font.
|
||||||
FT_Library library = OGLFT::Library::instance();
|
FT_Library library = OGLFT::Library::instance();
|
||||||
|
@ -1333,7 +1332,7 @@ public:
|
||||||
glTranslated( left, 0, 0 );
|
glTranslated( left, 0, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( unsigned int /*frame_number*/ )
|
void draw ( unsigned int frame_number )
|
||||||
{
|
{
|
||||||
face_->setVerticalJustification( OGLFT::Face::TOP );
|
face_->setVerticalJustification( OGLFT::Face::TOP );
|
||||||
face_->setHorizontalJustification( OGLFT::Face::CENTER );
|
face_->setHorizontalJustification( OGLFT::Face::CENTER );
|
||||||
|
@ -1354,7 +1353,7 @@ public:
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslated( j*42, -i * 18, 0 );
|
glTranslated( j*42, -i * 18, 0 );
|
||||||
|
|
||||||
glColor3f( .25, .25, .25 );
|
glColor3f( .5, .5, 0. );
|
||||||
glRectd( bbox.x_min_, bbox.y_min_, bbox.x_max_, bbox.y_max_ );
|
glRectd( bbox.x_min_, bbox.y_min_, bbox.x_max_, bbox.y_max_ );
|
||||||
|
|
||||||
face_->draw( 0, 0, "%p\"", a );
|
face_->draw( 0, 0, "%p\"", a );
|
||||||
|
@ -1371,7 +1370,7 @@ public:
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslated( 250.+cosr*24, 96.+sinr*24, 0 );
|
glTranslated( 250.+cosr*24, 96.+sinr*24, 0 );
|
||||||
|
|
||||||
glColor3f( .25, .25, .25 );
|
glColor3f( .5, .5, 0. );
|
||||||
glRectd( bbox.x_min_, bbox.y_min_, bbox.x_max_, bbox.y_max_ );
|
glRectd( bbox.x_min_, bbox.y_min_, bbox.x_max_, bbox.y_max_ );
|
||||||
|
|
||||||
face_->draw( 0, 0, "%p\"", 1.015625 );
|
face_->draw( 0, 0, "%p\"", 1.015625 );
|
||||||
|
@ -1389,7 +1388,7 @@ public:
|
||||||
|
|
||||||
CharacterView::CharacterView ( bool flank_speed, const char* fontfile,
|
CharacterView::CharacterView ( bool flank_speed, const char* fontfile,
|
||||||
QWidget* parent, const char* name )
|
QWidget* parent, const char* name )
|
||||||
: QGLWidget( ), flank_speed_( flank_speed )
|
: QGLWidget( parent, name ), flank_speed_( flank_speed )
|
||||||
{
|
{
|
||||||
vignettes.enqueue( new Vignette0( "Welcome to OGLFT!", fontfile ) );
|
vignettes.enqueue( new Vignette0( "Welcome to OGLFT!", fontfile ) );
|
||||||
vignettes.enqueue( new Vignette1( "The OpenGL/FreeType library", fontfile ) );
|
vignettes.enqueue( new Vignette1( "The OpenGL/FreeType library", fontfile ) );
|
||||||
|
@ -1400,7 +1399,7 @@ CharacterView::CharacterView ( bool flank_speed, const char* fontfile,
|
||||||
vignettes.enqueue( new Vignette8( "Measuring the text.", fontfile ) );
|
vignettes.enqueue( new Vignette8( "Measuring the text.", fontfile ) );
|
||||||
vignettes.enqueue( new Vignette6( "Per vertex color", fontfile ) );
|
vignettes.enqueue( new Vignette6( "Per vertex color", fontfile ) );
|
||||||
vignettes.enqueue( new Vignette7( "Per vertex texture coord", fontfile ) );
|
vignettes.enqueue( new Vignette7( "Per vertex texture coord", fontfile ) );
|
||||||
vignettes.enqueue( new Vignette10( "Each glyph can have it's own display list", fontfile ) );
|
vignettes.enqueue( new Vignette10( "Each glyph can have its own display list", fontfile ) );
|
||||||
vignettes.enqueue( new Vignette11( "QString Example", fontfile ) );
|
vignettes.enqueue( new Vignette11( "QString Example", fontfile ) );
|
||||||
vignettes.enqueue( new Vignette12( "Formatting Numbers", fontfile ) );
|
vignettes.enqueue( new Vignette12( "Formatting Numbers", fontfile ) );
|
||||||
vignettes.enqueue( new Vignette4( "OGLFT", fontfile ) );
|
vignettes.enqueue( new Vignette4( "OGLFT", fontfile ) );
|
||||||
|
@ -1430,7 +1429,7 @@ void CharacterView::redraw ( void )
|
||||||
frame_counter_++;
|
frame_counter_++;
|
||||||
animation_frame_counter_++;
|
animation_frame_counter_++;
|
||||||
|
|
||||||
if ( animation_frame_counter_ >= animation_frame_count_ ) {
|
if ( animation_frame_counter_ == animation_frame_count_ ) {
|
||||||
redraw_timer_.stop();
|
redraw_timer_.stop();
|
||||||
vignettes.current()->finish();
|
vignettes.current()->finish();
|
||||||
delete vignettes.dequeue();
|
delete vignettes.dequeue();
|
||||||
|
@ -1512,10 +1511,6 @@ void CharacterView::keyPressEvent ( QKeyEvent* e )
|
||||||
case Key_Q:
|
case Key_Q:
|
||||||
case Key_Escape:
|
case Key_Escape:
|
||||||
qApp->exit( 0 );
|
qApp->exit( 0 );
|
||||||
case Key_Return:
|
|
||||||
// "Speed up the harvest." L, Skywalker
|
|
||||||
animation_frame_counter_ = animation_frame_count_;
|
|
||||||
updateGL();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* speedtest.cpp: Performance test for the OGLFT library
|
* speedtest.cpp: Performance test for the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: speedtest.cpp,v 1.6 2003/10/01 14:08:30 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -19,13 +19,15 @@
|
||||||
*/
|
*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
#include <qapplication.h>
|
#include <qapplication.h>
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
#include <OGLFT.h>
|
#include <OGLFT.h>
|
||||||
|
|
||||||
#include "speedtest.h"
|
#include "speedtest.h"
|
||||||
#include "speedtest.moc"
|
|
||||||
|
|
||||||
class Vignette0 : public Vignette {
|
class Vignette0 : public Vignette {
|
||||||
|
|
||||||
|
@ -35,7 +37,7 @@ class Vignette0 : public Vignette {
|
||||||
OGLFT::Face* face_;
|
OGLFT::Face* face_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Vignette0 ( const char* text, const char* /*fontfile*/ ) : text_( text )
|
Vignette0 ( const char* text, const char* fontfile ) : text_( text )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +48,7 @@ public:
|
||||||
std::cout << "Vignette 0: Color and depth buffer clearing only" << std::endl;
|
std::cout << "Vignette 0: Color and depth buffer clearing only" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,10 +77,12 @@ public:
|
||||||
{
|
{
|
||||||
std::cout << "Vignette 1: MONOCHROME: immediate drawing: " << text_ << std::endl;
|
std::cout << "Vignette 1: MONOCHROME: immediate drawing: " << text_ << std::endl;
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -108,10 +112,12 @@ public:
|
||||||
{
|
{
|
||||||
std::cout << "Vignette 2: MONOCHROME: cached glyphs: " << text_ << std::endl;
|
std::cout << "Vignette 2: MONOCHROME: cached glyphs: " << text_ << std::endl;
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -144,11 +150,13 @@ public:
|
||||||
{
|
{
|
||||||
std::cout << "Vignette 3: MONOCHROME: display list: " << text_ << std::endl;
|
std::cout << "Vignette 3: MONOCHROME: display list: " << text_ << std::endl;
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glRasterPos2f( 0., 0. );
|
glRasterPos2f( 0., 0. );
|
||||||
glCallList( dlist_ );
|
glCallList( dlist_ );
|
||||||
|
@ -181,10 +189,12 @@ public:
|
||||||
{
|
{
|
||||||
std::cout << "Vignette 4: GRAYSCALE: immediate drawing: " << text_ << std::endl;
|
std::cout << "Vignette 4: GRAYSCALE: immediate drawing: " << text_ << std::endl;
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -214,10 +224,12 @@ public:
|
||||||
{
|
{
|
||||||
std::cout << "Vignette 5: GRAYSCALE: cached glyphs: " << text_ << std::endl;
|
std::cout << "Vignette 5: GRAYSCALE: cached glyphs: " << text_ << std::endl;
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -249,11 +261,13 @@ public:
|
||||||
{
|
{
|
||||||
std::cout << "Vignette 6: GRAYSCALE: display list: " << text_ << std::endl;
|
std::cout << "Vignette 6: GRAYSCALE: display list: " << text_ << std::endl;
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRasterPos2f( 0., 0. );
|
glRasterPos2f( 0., 0. );
|
||||||
|
@ -290,10 +304,12 @@ public:
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
glEnable( GL_BLEND );
|
glEnable( GL_BLEND );
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -326,10 +342,12 @@ public:
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
glEnable( GL_BLEND );
|
glEnable( GL_BLEND );
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -364,11 +382,13 @@ public:
|
||||||
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
|
||||||
glEnable( GL_BLEND );
|
glEnable( GL_BLEND );
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
|
#if defined( GL_RASTER_POSITION_UNCLIPPED_IBM )
|
||||||
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
glEnable( GL_RASTER_POSITION_UNCLIPPED_IBM );
|
||||||
|
#endif
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRasterPos2f( 0., 0. );
|
glRasterPos2f( 0., 0. );
|
||||||
|
@ -405,7 +425,7 @@ public:
|
||||||
std::cout << "Vignette 10: OUTLINE: immediate drawing: " << text_ << std::endl;
|
std::cout << "Vignette 10: OUTLINE: immediate drawing: " << text_ << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -436,7 +456,7 @@ public:
|
||||||
std::cout << "Vignette 11: OUTLINE: cached glyphs: " << text_ << std::endl;
|
std::cout << "Vignette 11: OUTLINE: cached glyphs: " << text_ << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -471,7 +491,7 @@ public:
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
// glPushMatrix();
|
// glPushMatrix();
|
||||||
glCallList( dlist_ );
|
glCallList( dlist_ );
|
||||||
|
@ -506,7 +526,7 @@ public:
|
||||||
std::cout << "Vignette 13: FILLED: immediate drawing: " << text_ << std::endl;
|
std::cout << "Vignette 13: FILLED: immediate drawing: " << text_ << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -537,7 +557,7 @@ public:
|
||||||
std::cout << "Vignette 14: FILLED: cached glyphs: " << text_ << std::endl;
|
std::cout << "Vignette 14: FILLED: cached glyphs: " << text_ << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -571,7 +591,7 @@ public:
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glCallList( dlist_ );
|
glCallList( dlist_ );
|
||||||
|
@ -608,7 +628,7 @@ public:
|
||||||
glEnable( GL_LIGHT0 );
|
glEnable( GL_LIGHT0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -642,7 +662,7 @@ public:
|
||||||
glEnable( GL_LIGHT0 );
|
glEnable( GL_LIGHT0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -679,7 +699,7 @@ public:
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glCallList( dlist_ );
|
glCallList( dlist_ );
|
||||||
|
@ -720,7 +740,7 @@ public:
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -755,7 +775,7 @@ public:
|
||||||
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -793,7 +813,7 @@ public:
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glCallList( dlist_ );
|
glCallList( dlist_ );
|
||||||
|
@ -832,7 +852,7 @@ public:
|
||||||
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -867,7 +887,7 @@ public:
|
||||||
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -905,7 +925,7 @@ public:
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glCallList( dlist_ );
|
glCallList( dlist_ );
|
||||||
|
@ -946,7 +966,7 @@ public:
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -984,7 +1004,7 @@ public:
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
face_->draw( 0., 0., text_ );
|
face_->draw( 0., 0., text_ );
|
||||||
}
|
}
|
||||||
|
@ -1025,7 +1045,7 @@ public:
|
||||||
dlist_ = face_->compile( text_ );
|
dlist_ = face_->compile( text_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw ( int /*frame_number*/ )
|
void draw ( int frame_number )
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glCallList( dlist_ );
|
glCallList( dlist_ );
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* -*- c++ -*-
|
/* -*- c++ -*-
|
||||||
* speedtest.h: Header for Performance test for the OGLFT library
|
* speedtest.h: Header for Performance test for the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: speedtest.h,v 1.2 2002/02/04 19:01:17 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* tutorial1.cpp: Tutorial for the OGLFT library
|
* tutorial1.cpp: Tutorial for the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: tutorial1.cpp,v 1.5 2003/10/01 14:08:49 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -18,9 +18,10 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
|
#include <config.h>
|
||||||
#include <OGLFT.h> // Note: this will depend on where you've installed OGLFT
|
#include <OGLFT.h> // Note: this will depend on where you've installed OGLFT
|
||||||
|
|
||||||
// Declare a Face variable of the desired style
|
// Declare a Face variable of the desired style
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* tutorial2.cpp: Tutorial for the OGLFT library
|
* tutorial2.cpp: Tutorial for the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: tutorial2.cpp,v 1.5 2003/10/01 14:09:12 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -18,9 +18,10 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
|
#include <config.h>
|
||||||
#include <OGLFT.h> // Note: this will depend on where you've installed OGLFT
|
#include <OGLFT.h> // Note: this will depend on where you've installed OGLFT
|
||||||
|
|
||||||
#define USE_BITMAP_FACE
|
#define USE_BITMAP_FACE
|
||||||
|
@ -94,13 +95,11 @@ static void idle ( void )
|
||||||
// it by 4 degrees
|
// it by 4 degrees
|
||||||
|
|
||||||
face->setStringRotation( face->stringRotation() + 4 );
|
face->setStringRotation( face->stringRotation() + 4 );
|
||||||
#if !defined(WIN32)
|
|
||||||
// Too fast even without acceleration
|
// Too fast even without acceleration
|
||||||
struct timespec request = { 0, 40000000 };
|
struct timespec request = { 0, 40000000 };
|
||||||
nanosleep( &request, 0 );
|
nanosleep( &request, 0 );
|
||||||
#else
|
|
||||||
Sleep( 40 );
|
|
||||||
#endif
|
|
||||||
glutPostRedisplay();
|
glutPostRedisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* tutorial3.cpp: Tutorial for the OGLFT library
|
* tutorial3.cpp: Tutorial for the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: tutorial3.cpp,v 1.5 2003/10/01 14:09:28 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -18,15 +18,14 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#if defined(_MSC_VER)
|
|
||||||
#define _USE_MATH_DEFINES
|
|
||||||
#endif
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <vector> // The STL vector
|
#include <vector> // The STL vector
|
||||||
#include <algorithm> // The STL algorithms
|
#include <algorithm> // The STL algorithms
|
||||||
#include <GL/glut.h>
|
using namespace std;
|
||||||
|
|
||||||
|
#include <GL/glut.h>
|
||||||
|
#include <config.h>
|
||||||
#include <OGLFT.h> // Note: this will depend on where you've installed OGLFT
|
#include <OGLFT.h> // Note: this will depend on where you've installed OGLFT
|
||||||
|
|
||||||
// A Face variable of the desired style
|
// A Face variable of the desired style
|
||||||
|
@ -80,8 +79,7 @@ void init ( const char* filename )
|
||||||
// Next, generate a sequence of relative displacements
|
// Next, generate a sequence of relative displacements
|
||||||
|
|
||||||
for ( int i=0; i<13; i++ ) {
|
for ( int i=0; i<13; i++ ) {
|
||||||
float dy = AMPLITUDE * ( sinf( (i+1) * 2.f * (float)M_PI / 13.f ) -
|
float dy = AMPLITUDE * ( sin( (i+1) * 2 * M_PI / 13 ) - sin( i * 2 * M_PI / 13 ) );
|
||||||
sinf( i * 2.f * (float)M_PI / 13.f ) );
|
|
||||||
|
|
||||||
glNewList( dlist, GL_COMPILE );
|
glNewList( dlist, GL_COMPILE );
|
||||||
glTranslatef( 0., dy, 0. );
|
glTranslatef( 0., dy, 0. );
|
||||||
|
@ -95,7 +93,7 @@ void init ( const char* filename )
|
||||||
// Next, generate a sequence of absolute displacements
|
// Next, generate a sequence of absolute displacements
|
||||||
|
|
||||||
for ( int i=0; i<13; i++ ) {
|
for ( int i=0; i<13; i++ ) {
|
||||||
float y = AMPLITUDE * sinf( i * 2.f * (float)M_PI / 13.f );
|
float y = AMPLITUDE * sin( i * 2 * M_PI / 13 );
|
||||||
|
|
||||||
glNewList( dlist, GL_COMPILE );
|
glNewList( dlist, GL_COMPILE );
|
||||||
glTranslatef( 0., y, 0. );
|
glTranslatef( 0., y, 0. );
|
||||||
|
@ -129,7 +127,7 @@ void init ( const char* filename )
|
||||||
|
|
||||||
// Make it (sea) green
|
// Make it (sea) green
|
||||||
|
|
||||||
solid->setForegroundColor( 143.f/255.f, 188.f/255.f, 143.f/255.f );
|
solid->setForegroundColor( 143./255., 188./255., 143./255. );
|
||||||
|
|
||||||
// Set the window's background color
|
// Set the window's background color
|
||||||
|
|
||||||
|
@ -139,8 +137,8 @@ void init ( const char* filename )
|
||||||
// version of the absolute displacements which we'll cycle through)
|
// version of the absolute displacements which we'll cycle through)
|
||||||
|
|
||||||
for ( int i = 0; i <= 52; i++ ) {
|
for ( int i = 0; i <= 52; i++ ) {
|
||||||
float s = sinf( i * 2.f * (float)M_PI / 52.f );
|
float s = sin( i * 2 * M_PI / 52 );
|
||||||
float c = cosf( i * 2.f * (float)M_PI / 52.f );
|
float c = cos( i * 2 * M_PI / 52 );
|
||||||
vertex v;
|
vertex v;
|
||||||
v.y = AMPLITUDE * s;
|
v.y = AMPLITUDE * s;
|
||||||
v.nx = c;
|
v.nx = c;
|
||||||
|
@ -165,7 +163,7 @@ static void display ( void )
|
||||||
|
|
||||||
solid->draw( 250., 250., "Hello, World!" );
|
solid->draw( 250., 250., "Hello, World!" );
|
||||||
|
|
||||||
glTranslatef( 254.f - ( bbox.x_max_ + bbox.x_min_ ) / 2.f, 255.f, 0.f );
|
glTranslatef( 254.- ( bbox.x_max_ + bbox.x_min_ ) / 2., 255., 0. );
|
||||||
|
|
||||||
glBegin( GL_QUAD_STRIP );
|
glBegin( GL_QUAD_STRIP );
|
||||||
|
|
||||||
|
@ -204,10 +202,10 @@ static void reshape ( int width, int height )
|
||||||
// (note we rotate the model instead of the view so that the lighting
|
// (note we rotate the model instead of the view so that the lighting
|
||||||
// is fixed relative to the view instead of the model)
|
// is fixed relative to the view instead of the model)
|
||||||
|
|
||||||
glTranslatef( width/2.f, height/2.f, 0.f );
|
glTranslatef( width/2, height/2, 0. );
|
||||||
glRotatef( 25.f, 1.f, 0.f, 0.f );
|
glRotatef( 25., 1., 0., 0. );
|
||||||
glRotatef( 25.f, 0.f, 1.f, 0.f );
|
glRotatef( 25., 0., 1., 0. );
|
||||||
glTranslatef( -width/2.f, -height/2.f, 0. );
|
glTranslatef( -width/2, -height/2, 0. );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void idle ( void )
|
static void idle ( void )
|
||||||
|
@ -234,19 +232,15 @@ static void idle ( void )
|
||||||
solid->characterDisplayLists()[0] = solid->characterDisplayLists()[13+1];
|
solid->characterDisplayLists()[0] = solid->characterDisplayLists()[13+1];
|
||||||
|
|
||||||
glutPostRedisplay();
|
glutPostRedisplay();
|
||||||
#if !defined(WIN32)
|
|
||||||
// Too fast even without acceleration
|
// Too fast even without acceleration
|
||||||
struct timespec request = { 0, 80000000 };
|
struct timespec request = { 0, 80000000 };
|
||||||
nanosleep( &request, 0 );
|
nanosleep( &request, 0 );
|
||||||
#else
|
|
||||||
Sleep( 800 );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void key ( unsigned char c, int /*x*/, int /*y*/ )
|
static void key ( unsigned char c, int x, int y )
|
||||||
{
|
{
|
||||||
switch ( c ) {
|
switch ( c ) {
|
||||||
case 'q':
|
|
||||||
case 27:
|
case 27:
|
||||||
exit( 0 );
|
exit( 0 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* -*- c++ -*-
|
/* -*- c++ -*-
|
||||||
* speedtest.h: Header for Performance test for the OGLFT library
|
* speedtest.h: Header for Performance test for the OGLFT library
|
||||||
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
* Copyright (C) 2002 lignum Computing, Inc. <oglft@lignumcomputing.com>
|
||||||
* $Id$
|
* $Id: vignette.h,v 1.2 2002/02/04 19:01:23 allen Exp $
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -22,16 +22,9 @@
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#if OGLFT_QT_VERSION == 3
|
|
||||||
#include <qgl.h>
|
#include <qgl.h>
|
||||||
#include <qqueue.h>
|
#include <qqueue.h>
|
||||||
#include <qtimer.h>
|
#include <qtimer.h>
|
||||||
#elif OGLFT_QT_VERSION == 4
|
|
||||||
#include <QGLWidget>
|
|
||||||
#include <QQueue>
|
|
||||||
#include <QTimer>
|
|
||||||
#include <QKeyEvent>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Little animation vignettes. The function calls essentially follow
|
// Little animation vignettes. The function calls essentially follow
|
||||||
// those of the Qt OpenGL widget and are called at the corresponding times.
|
// those of the Qt OpenGL widget and are called at the corresponding times.
|
||||||
|
@ -74,11 +67,8 @@ Q_OBJECT
|
||||||
unsigned int animation_frame_counter_;
|
unsigned int animation_frame_counter_;
|
||||||
|
|
||||||
static const unsigned int PERFORMANCE_SAMPLE_RATE_HZ = 1;
|
static const unsigned int PERFORMANCE_SAMPLE_RATE_HZ = 1;
|
||||||
#if OGLFT_QT_VERSION == 3
|
|
||||||
QQueue<Vignette> vignettes;
|
QQueue<Vignette> vignettes;
|
||||||
#elif OGLFT_QT_VERSION == 4
|
|
||||||
QQueue<Vignette*> vignettes;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void redraw ( void );
|
void redraw ( void );
|
||||||
|
|
Loading…
Reference in New Issue