AllegroGL  0.4.4
Macros | Functions | Variables
videovtb.c File Reference

video bitmaps (ie. More...

#include <string.h>
#include <limits.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.

Macros

#define MASKED_BLIT   1
 
#define BLIT   2
 
#define TRANS   3
 
#define FOR_EACH_TEXTURE_FRAGMENT(screen_blit_from_vid, screen_blit_from_mem, mem_copy_blit_from_vid, mem_copy_blit_from_mem, vid_and_mem_copy_blit_from_vid, vid_and_mem_copy_blit_from_mem)
 
#define BIN_2_DEG(x)   (-(x) * 180.0 / 128)
 

Functions

void allegro_gl_destroy_video_bitmap (BITMAP *bmp)
 destroy_video_bitmap() overload. More...
 
static int allegro_gl_make_video_bitmap_helper1 (int w, int h, int x, int y, GLint target, AGL_VIDEO_BITMAP **pvid)
 
static int allegro_gl_make_video_bitmap_helper0 (int w, int h, int x, int y, AGL_VIDEO_BITMAP **pvid)
 
static BITMAP * allegro_gl_make_video_bitmap (BITMAP *bmp)
 
BITMAP * allegro_gl_create_video_bitmap (int w, int h)
 create_video_bitmap() overload. More...
 
static void allegro_gl_video_acquire (struct BITMAP *bmp)
 acquire_bitmap(bmp) overload. More...
 
static void allegro_gl_video_release (struct BITMAP *bmp)
 release_bitmap(bmp) overload. More...
 
static void set_drawing_pattern (void)
 
static void unset_drawing_pattern (void)
 
static int allegro_gl_video_getpixel (struct BITMAP *bmp, int x, int y)
 
static void update_texture_memory (AGL_VIDEO_BITMAP *vid, int x1, int y1, int x2, int y2)
 
static void allegro_gl_video_putpixel (struct BITMAP *bmp, int x, int y, int color)
 
static void allegro_gl_video_vline (BITMAP *bmp, int x, int y1, int y2, int color)
 
static void allegro_gl_video_hline (BITMAP *bmp, int x1, int y, int x2, int color)
 
static void allegro_gl_video_line (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color)
 
static void allegro_gl_video_rectfill (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color)
 
static void allegro_gl_video_triangle (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color)
 
static void allegro_gl_video_blit_from_memory_ex (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height, int draw_type)
 
void allegro_gl_video_blit_from_memory (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height)
 
void allegro_gl_video_blit_to_memory (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height)
 
static void __video_update_memory_copy (BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height, int draw_type)
 
void allegro_gl_video_blit_to_self (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height)
 
static void do_masked_blit_video (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height, int flip_dir, int blit_type)
 
static void allegro_gl_video_masked_blit (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height)
 
static void allegro_gl_video_draw_sprite (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y)
 
static void allegro_gl_video_draw_sprite_v_flip (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y)
 
static void allegro_gl_video_draw_sprite_h_flip (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y)
 
static void allegro_gl_video_draw_sprite_vh_flip (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y)
 
static void allegro_gl_video_pivot_scaled_sprite_flip (struct BITMAP *bmp, struct BITMAP *sprite, fixed x, fixed y, fixed cx, fixed cy, fixed angle, fixed scale, int v_flip)
 
static void allegro_gl_video_do_stretch_blit (BITMAP *source, BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked)
 
static void allegro_gl_video_draw_trans_rgba_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y)
 
static void allegro_gl_video_draw_sprite_ex (BITMAP *bmp, BITMAP *sprite, int x, int y, int mode, int flip)
 
static void allegro_gl_video_clear_to_color (BITMAP *bmp, int color)
 
static void allegro_gl_video_draw_color_glyph (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int color, int bg)
 
static void allegro_gl_video_draw_256_sprite (BITMAP *bmp, BITMAP *sprite, int x, int y)
 
static void allegro_gl_video_draw_character (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg)
 
static void allegro_gl_video_draw_glyph (struct BITMAP *bmp, AL_CONST struct FONT_GLYPH *glyph, int x, int y, int color, int bg)
 
static void allegro_gl_video_polygon3d_f (BITMAP *bmp, int type, BITMAP *texture, int vc, V3D_f *vtx[])
 
static void allegro_gl_video_polygon3d (BITMAP *bmp, int type, BITMAP *texture, int vc, V3D *vtx[])
 
static void allegro_gl_video_triangle3d (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3)
 
static void allegro_gl_video_triangle3d_f (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3)
 
static void allegro_gl_video_quad3d (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4)
 
static void allegro_gl_video_quad3d_f (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4)
 
static void dummy_unwrite_bank (void)
 
Video Bitmap Rountines
GLint allegro_gl_set_video_bitmap_color_depth (int bpp)
 Sets the color depth you'd like AllegroGL to use for video bitmaps. More...
 

Variables

static GFX_VTABLE allegro_gl_video_vtable
 
static int video_bitmap_count = 2
 
static int __allegro_gl_video_bitmap_bpp = -1
 
BITMAP * __agl_drawing_pattern_bmp
 
BITMAP * old_pattern = NULL
 

Detailed Description

video bitmaps (ie.

texture rendering) vtable Some of these don't work correctly or will be very slow.

Definition in file videovtb.c.

Function Documentation

void allegro_gl_destroy_video_bitmap ( BITMAP *  bmp)

destroy_video_bitmap() overload.

Will destroy the video bitmap. You mustn't use the BITMAP pointer after calling this function.

Definition at line 308 of file videovtb.c.

BITMAP* allegro_gl_create_video_bitmap ( int  w,
int  h 
)

create_video_bitmap() overload.

This function will create a video bitmap using texture memory. Video bitmaps do not currently share space with the frame buffer (screen). Video bitmaps are lost when switching screen modes.

Definition at line 344 of file videovtb.c.