glvtable.c File Reference

Allegro->OpenGL conversion vtable. More...

#include <string.h>
#include <allegro.h>
#include "alleggl.h"
#include "allglint.h"
#include "glvtable.h"
#include <allegro/internal/aintern.h>
#include <GL/glu.h>

Go to the source code of this file.

Defines

Functions

Variables


Detailed Description

Allegro->OpenGL conversion vtable.

Some of these don't work correctly or will be very slow. The current vtable is in early stages, and will be replaced by a better (faster) version 'soon'. Don't count on regular Allegro functions working on the screen or on video bitmaps.

Definition in file glvtable.c.


Define Documentation

#define DRAW_RLE_8888 bits   ) 
 

Value:

{                               \
        for (y = 0; y < sprite->h; y++) {           \
            signed long c = *s++;               \
            for (x = 0; x < sprite->w;) {           \
                if (c == src_mask)          \
                    break;              \
                if (c > 0) {                \
                    /* Run of solid pixels */   \
                    for (c--; c>=0; c--) {      \
                        unsigned long col = *s++;       \
                        _putpixel32(temp, x++, y, makeacol32(getr##bits(col), getg##bits(col), getb##bits(col), 255)); \
                    }               \
                }                   \
                else {                  \
                    /* Run of transparent pixels */ \
                    hline(temp, x, y, x-c+1, 0);    \
                    x -= c;             \
                }                   \
                c = *s++;               \
            }                       \
        }                           \
    }

#define DRAW_RLE_5551 bits   ) 
 

Value:

{                               \
        for (y = 0; y < sprite->h; y++) {           \
            signed long c = *s++;               \
            for (x = 0; x < sprite->w;) {           \
                if (c == src_mask)          \
                    break;              \
                if (c > 0) {                \
                    /* Run of solid pixels */   \
                    for (c--; c>=0; c--) {      \
                        unsigned long col = *s++;       \
                        _putpixel16(temp, x++, y, (1 << ((_rgb_r_shift_15 > _rgb_b_shift_15) ? 0 : 15)) \
                         | ((getr##bits(col) >> 3) << _rgb_r_shift_15)              \
                         | ((getg##bits(col) >> 3) << _rgb_g_shift_15)              \
                         | ((getb##bits(col) >> 3) << _rgb_b_shift_15));            \
                    }               \
                }                   \
                else {                  \
                    /* Run of transparent pixels */ \
                    hline(temp, x, y, x-c+1, 0);    \
                    x -= c;             \
                }                   \
                c = *s++;               \
            }                       \
        }                           \
    }


Generated on Mon Apr 3 18:20:13 2006 for AllegroGL by  doxygen 1.4.6