File: glui_bitmaps.cpp

package info (click to toggle)
glui 2.1.0.beta-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,068 kB
  • ctags: 1,302
  • sloc: cpp: 9,043; ansic: 857; makefile: 235
file content (105 lines) | stat: -rw-r--r-- 2,641 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/****************************************************************************
  
  GLUI User Interface Toolkit
  ---------------------------

     glui_bitmaps.cpp


          --------------------------------------------------

  Copyright (c) 1998 Paul Rademacher

  This program is freely distributable without licensing fees and is
  provided without guarantee or warrantee expressed or implied. This
  program is -not- in the public domain.

*****************************************************************************/

#include "glui.h"
#include "stdinc.h"
#include <GL/glut.h>

int *bitmap_arrays[] = {
  glui_img_checkbox_0,
  glui_img_checkbox_1,
  glui_img_radiobutton_0,
  glui_img_radiobutton_1,
  glui_img_uparrow,
  glui_img_downarrow,
  glui_img_leftarrow,
  glui_img_rightarrow,
  glui_img_spinup_0,
  glui_img_spinup_1,
  glui_img_spindown_0,
  glui_img_spindown_1,
  glui_img_checkbox_0_dis,
  glui_img_checkbox_1_dis,
  glui_img_radiobutton_0_dis,
  glui_img_radiobutton_1_dis,
  glui_img_spinup_dis,
  glui_img_spindown_dis,
  glui_img_listbox_up,
  glui_img_listbox_down,
  glui_img_listbox_up_dis,
};


/************************************ GLUI_Bitmap::load_from_array() ********/

void GLUI_Bitmap::load_from_array( int *array )
{
  int i;

  w = 0;
  h = 0;

  if ( array == NULL )
    return;

  w = array[0];
  h = array[1];
  
  pixels = (unsigned char*) malloc( sizeof(unsigned char) * w * h * 3);

  for( i = 0; i<w*h*3; i++ )
    pixels[i] = (unsigned char) array[i+2];
}


/*********************************** GLUI_StdBitmaps::draw() *****************/

void GLUI_StdBitmaps::draw( int bitmap_num, int x, int y )
{
  //  int i;

  if ( bitmaps[bitmap_num].pixels != NULL ) {
    glRasterPos2f( (float)x+.5, (float)y + (float)bitmaps[bitmap_num].h + .5);
    glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );

    glDrawPixels( bitmaps[bitmap_num].w, bitmaps[bitmap_num].h,
		  GL_RGB, GL_UNSIGNED_BYTE, bitmaps[bitmap_num].pixels ); 

    /*    printf( "%d %d %d %d %d %d %d\n", 
	  bitmaps[bitmap_num].w, bitmaps[bitmap_num].h, 0, 0, 0, 0,
	  bitmaps[bitmap_num].pixels );

	  for( i=0; i<bitmaps[bitmap_num].w*bitmaps[bitmap_num].h*3; i++ ) {
	  printf( "%d ", bitmaps[bitmap_num].pixels[i] );
	  }
	  printf( "\n" );
	  */
    /*    for( i=0; i<bitmaps[bitmap_num].w; i++ ) {
	  for( j=0; j<bitmaps[bitmap_num].h; j++ ) {
	  if ( bitmaps[bitmap_num].pixels[(i+j*bitmaps[bitmap_num].w)*3]
	  > 128 )
	  putchar( '#' );
	  else 
	  putchar( ' ' );
	  }
	  putchar( '\n' );
	  }
	  fflush( stdout );
	  */
  }
}