Changeset 409

Show
Ignore:
Timestamp:
06/11/07 04:15:55 (16 months ago)
Author:
krobillard
Message:

Thune GL - Added enable/disable with state tracking.
Geometry ops now handle words.

Location:
branches/thune/thread_safe/gl
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • branches/thune/thread_safe/gl/boot.c

    r405 r409  
    6767  "    end\n" 
    6868  "    clear\n" 
     69  "    enable\n" 
     70  "    disable\n" 
    6971  "    call\n" 
    7072  "    solid\n" 
  • branches/thune/thread_safe/gl/draw_list.c

    r405 r409  
    3030 
    3131 
     32enum EnableMask 
     33{ 
     34    EN_ALPHA_TEST   = 0x0001,  
     35    EN_BLEND        = 0x0002, 
     36    EN_CULL_FACE    = 0x0004, 
     37    EN_DEPTH_TEST   = 0x0008, 
     38    EN_LIGHTING     = 0x0010, 
     39    EN_LINE_SMOOTH  = 0x0020, 
     40    EN_POINT_SMOOTH = 0x0040, 
     41    EN_POINT_SPRITE = 0x0080, 
     42    EN_SCISSOR_TEST = 0x0100, 
     43    EN_STENCIL_TEST = 0x0200, 
     44    EN_TEXTURE_2D   = 0x0400, 
     45    EN_VERTEX_PROGRAM_POINT_SIZE = 0x0800 
     46}; 
     47 
     48#define EN_DEFAULT  0 
     49 
     50 
    3251enum CameraContext 
    3352{ 
     
    4463 
    4564 
     65#if 0 
    4666void gr_disableTexture() 
    4767{ 
     
    6181#endif 
    6282} 
     83#endif 
    6384 
    6485 
    6586void gr_clearState() 
    6687{ 
    67     _state.stateId   = GRS_UNSET; 
    68     _state.fontN     = 0; 
    69     _state.penX      = 0; 
    70     _state.penY      = 0; 
    71     _state.vertVals  = 0; 
    72     _state.normVals  = 0; 
    73     _state.uvVals    = 0; 
    74     _state.colorVals = 0; 
     88    _state.stateId      = GRS_UNSET; 
     89    _state.enableMask   = EN_DEFAULT; 
     90    _state.fontN        = 0; 
     91    _state.penX         = 0; 
     92    _state.penY         = 0; 
     93    _state.vertVals     = 0; 
     94    _state.normVals     = 0; 
     95    _state.uvVals       = 0; 
     96    _state.colorVals    = 0; 
    7597    _state.attr[0].vals = 0; 
    7698    _state.attr[1].vals = 0; 
     
    79101 
    80102 
     103static void gr_enable( const char* ); 
     104static void gr_disable( const char* ); 
     105 
     106 
    81107void gr_setState( int sid ) 
    82108{ 
     
    88114        case GRS_SOLID: 
    89115            glDepthMask( GL_FALSE ); 
     116            gr_disable( "lbct" ); 
     117            /* 
    90118            glDisable( GL_LIGHTING ); 
    91119            glDisable( GL_BLEND ); 
    92120            glDisable( GL_CULL_FACE ); 
    93  
    94121            gr_disableTexture(); 
     122            */ 
    95123            break; 
    96124 
    97125        case GRS_MODEL: 
    98126            glDepthMask( GL_TRUE ); 
    99             glShadeModel( GL_SMOOTH ); 
    100  
    101             //glColorMaterial( GL_FRONT, GL_DIFFUSE ); 
    102             //glEnable( GL_COLOR_MATERIAL ); 
    103  
     127            //glShadeModel( GL_SMOOTH ); 
     128 
     129            gr_enable( "dlc" ); 
     130            gr_disable( "b" ); 
     131            /* 
    104132            glEnable( GL_DEPTH_TEST ); 
    105133            glEnable( GL_LIGHTING ); 
     
    107135 
    108136            glDisable( GL_BLEND ); 
     137            */ 
    109138 
    110139            //gr_disableTexture(); 
    111             gr_enableTexture0(); 
     140            //gr_enableTexture0(); 
    112141            break; 
    113142 
     
    115144            glDepthMask( GL_FALSE ); 
    116145 
     146            gr_enable( "bt" ); 
     147            gr_disable( "adl" ); 
     148            /* 
    117149            glDisable( GL_ALPHA_TEST ); 
    118150            glDisable( GL_DEPTH_TEST ); 
    119             glDisable( GL_FOG ); 
    120151            glDisable( GL_LIGHTING ); 
    121             glDisable( GL_COLOR_MATERIAL ); 
    122152 
    123153            glEnable( GL_BLEND ); 
     154            gr_enableTexture0(); 
     155            */ 
    124156            glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); 
    125157 
    126             gr_enableTexture0(); 
    127158 
    128159            //glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); 
     
    130161 
    131162        case GRS_PARTICLE: 
    132             if( _state.stateId != GRS_TEXT ) 
    133             { 
    134                 glDepthMask( GL_FALSE ); 
    135  
    136             //glEnable( GL_DEPTH_TEST ); 
    137  
    138                 glDisable( GL_ALPHA_TEST ); 
    139                 glDisable( GL_DEPTH_TEST ); 
    140                 glDisable( GL_FOG ); 
    141                 glDisable( GL_LIGHTING ); 
    142                 glDisable( GL_COLOR_MATERIAL ); 
    143  
    144                 glEnable( GL_BLEND ); 
    145             } 
    146             glEnable( GL_VERTEX_PROGRAM_POINT_SIZE ); 
     163            glDepthMask( GL_FALSE ); 
     164 
     165            gr_enable( "bv" ); 
     166            gr_disable( "adl" ); 
     167            /* 
     168            glDisable( GL_ALPHA_TEST ); 
     169            glDisable( GL_DEPTH_TEST ); 
     170            glDisable( GL_LIGHTING ); 
     171 
     172            glEnable( GL_BLEND ); 
     173            */ 
     174 
     175            //glEnable( GL_VERTEX_PROGRAM_POINT_SIZE ); 
    147176            //gr_disableTexture(); 
    148177 
     
    171200 
    172201    glDisable( GL_POLYGON_STIPPLE ); 
    173  
    174     glColorMaterial( GL_FRONT, GL_DIFFUSE ); 
    175     glEnable( GL_COLOR_MATERIAL ); 
    176202 
    177203    glEnable( GL_DEPTH_TEST ); 
     
    588614 
    589615    glDepthMask( GL_TRUE ); 
     616    gr_enable( "d" ); 
     617    gr_disable( "blt" ); 
     618    /* 
    590619    glEnable( GL_DEPTH_TEST ); 
    591620    glDisable( GL_LIGHTING ); 
    592621    glDisable( GL_BLEND ); 
    593622    gr_disableTexture(); 
     623    */ 
    594624 
    595625 
     
    598628 
    599629#ifdef SHADOW_BACK_FACES 
    600     glEnable( GL_CULL_FACE ); 
     630    gr_enable( "c" ); //glEnable( GL_CULL_FACE ); 
    601631    glCullFace( GL_FRONT ); 
    602632#else 
     
    820850 
    821851 
     852#ifdef DEBUG 
     853#define PRINT_STATE(txt,f,e) \ 
     854    s = glIsEnabled( e ); \ 
     855    sf = s ? f : 0; \ 
     856    mf = _state.enableMask & f; \ 
     857    if( sf ^ mf ) \ 
     858        printf( "%d/%d %s\n", s, mf ? 1 : 0, txt ); 
     859 
     860void gr_printEnabled() 
     861{ 
     862    GLboolean s; 
     863    int mf; 
     864    int sf; 
     865 
     866    PRINT_STATE( "GL_ALPHA_TEST/a",   EN_ALPHA_TEST,   GL_ALPHA_TEST ) 
     867    PRINT_STATE( "GL_BLEND/b",        EN_BLEND,        GL_BLEND ) 
     868    PRINT_STATE( "GL_CULL_FACE/c",    EN_CULL_FACE,    GL_CULL_FACE ) 
     869    PRINT_STATE( "GL_DEPTH_TEST/d",   EN_DEPTH_TEST,   GL_DEPTH_TEST ) 
     870    PRINT_STATE( "GL_LIGHTING/l",     EN_LIGHTING,     GL_LIGHTING ) 
     871    PRINT_STATE( "GL_LINE_SMOOTH/n",  EN_LINE_SMOOTH,  GL_LINE_SMOOTH ) 
     872    PRINT_STATE( "GL_POINT_SMOOTH/o", EN_POINT_SMOOTH, GL_POINT_SMOOTH ) 
     873    PRINT_STATE( "GL_POINT_SPRITE/p", EN_POINT_SPRITE, GL_POINT_SPRITE ) 
     874    PRINT_STATE( "GL_STENCIL_TEST/s", EN_STENCIL_TEST, GL_STENCIL_TEST ) 
     875    PRINT_STATE( "GL_TEXTURE_2D/t",   EN_TEXTURE_2D,   GL_TEXTURE_2D ) 
     876    PRINT_STATE( "GL_VERTEX_PROGRAM_POINT_SIZE/v", 
     877                 EN_VERTEX_PROGRAM_POINT_SIZE, GL_VERTEX_PROGRAM_POINT_SIZE ) 
     878    PRINT_STATE( "GL_SCISSOR_TEST/x", EN_SCISSOR_TEST, GL_SCISSOR_TEST ) 
     879} 
     880#endif 
     881 
     882 
     883#define ENABLE(f,e) \ 
     884    if( ! (_state.enableMask & f) ) { \ 
     885        _state.enableMask |= f; \ 
     886        glEnable( e ); } 
     887 
     888#define DISABLE(f,e) \ 
     889    if( _state.enableMask & f ) { \ 
     890        _state.enableMask &= ~f; \ 
     891        glDisable( e ); } 
     892 
     893static void gr_enable( const char* cp ) 
     894{ 
     895    //printf( "KR %s\n", cp ); 
     896    while( *cp != '\0' ) 
     897    { 
     898        switch( *cp ) 
     899        { 
     900            case 'a': 
     901                ENABLE( EN_ALPHA_TEST, GL_ALPHA_TEST ) 
     902                break; 
     903            case 'b': 
     904                ENABLE( EN_BLEND, GL_BLEND ) 
     905                break; 
     906            case 'c': 
     907                ENABLE( EN_CULL_FACE, GL_CULL_FACE ) 
     908                break; 
     909            case 'd': 
     910                ENABLE( EN_DEPTH_TEST, GL_DEPTH_TEST ) 
     911                break; 
     912            case 'l': 
     913                ENABLE( EN_LIGHTING, GL_LIGHTING ) 
     914                break; 
     915            case 'n': 
     916                ENABLE( EN_LINE_SMOOTH, GL_LINE_SMOOTH ) 
     917                break; 
     918            case 'o': 
     919                ENABLE( EN_POINT_SMOOTH, GL_POINT_SMOOTH ) 
     920                break; 
     921            case 'p': 
     922                ENABLE( EN_POINT_SPRITE, GL_POINT_SPRITE ) 
     923                break; 
     924            case 's': 
     925                ENABLE( EN_STENCIL_TEST, GL_STENCIL_TEST ) 
     926                break; 
     927            case 't': 
     928                ENABLE( EN_TEXTURE_2D, GL_TEXTURE_2D ) 
     929                break; 
     930            case 'v': 
     931                ENABLE( EN_VERTEX_PROGRAM_POINT_SIZE, 
     932                        GL_VERTEX_PROGRAM_POINT_SIZE ) 
     933                break; 
     934            case 'x': 
     935                ENABLE( EN_SCISSOR_TEST, GL_SCISSOR_TEST ) 
     936                break; 
     937#ifdef DEBUG 
     938            case '?': 
     939                gr_printEnabled(); 
     940                break; 
     941#endif 
     942        } 
     943        ++cp; 
     944    } 
     945} 
     946 
     947 
     948static void gr_disable( const char* cp ) 
     949{ 
     950    while( *cp != '\0' ) 
     951    { 
     952        switch( *cp ) 
     953        { 
     954            case 'a': 
     955                DISABLE( EN_ALPHA_TEST, GL_ALPHA_TEST ) 
     956                break; 
     957            case 'b': 
     958                DISABLE( EN_BLEND, GL_BLEND ) 
     959                break; 
     960            case 'c': 
     961                DISABLE( EN_CULL_FACE, GL_CULL_FACE ) 
     962                break; 
     963            case 'd': 
     964                DISABLE( EN_DEPTH_TEST, GL_DEPTH_TEST ) 
     965                break; 
     966            case 'l': 
     967                DISABLE( EN_LIGHTING, GL_LIGHTING ) 
     968                break; 
     969            case 'n': 
     970                DISABLE( EN_LINE_SMOOTH, GL_LINE_SMOOTH ) 
     971                break; 
     972            case 'o': 
     973                DISABLE( EN_POINT_SMOOTH, GL_POINT_SMOOTH ) 
     974                break; 
     975            case 'p': 
     976                DISABLE( EN_POINT_SPRITE, GL_POINT_SPRITE ) 
     977                break; 
     978            case 's': 
     979                DISABLE( EN_STENCIL_TEST, GL_STENCIL_TEST ) 
     980                break; 
     981            case 't': 
     982                DISABLE( EN_TEXTURE_2D, GL_TEXTURE_2D ) 
     983                break; 
     984            case 'v': 
     985                DISABLE( EN_VERTEX_PROGRAM_POINT_SIZE, 
     986                         GL_VERTEX_PROGRAM_POINT_SIZE ) 
     987                break; 
     988            case 'x': 
     989                DISABLE( EN_SCISSOR_TEST, GL_SCISSOR_TEST ) 
     990                break; 
     991#ifdef DEBUG 
     992            case '?': 
     993                gr_printEnabled(); 
     994                break; 
     995#endif 
     996        } 
     997        ++cp; 
     998    } 
     999} 
     1000 
     1001 
    8221002#define VAL_WORD_OR_PC \ 
    8231003    if( ur_is(pc, UT_WORD) ) { \ 
     
    8491029            case DOP_CLEAR: 
    8501030                glDepthMask( GL_TRUE ); 
     1031                glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); 
    8511032                glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); 
     1033                break; 
     1034 
     1035            case DOP_ENABLE: 
     1036                if( ur_selIsAtom(pc) ) 
     1037                { 
     1038                    gr_enable( ur_atomCStr( ur_sel(pc), 0 ) ); 
     1039                } 
     1040                break; 
     1041 
     1042            case DOP_DISABLE: 
     1043                if( ur_selIsAtom(pc) ) 
     1044                { 
     1045                    gr_disable( ur_atomCStr( ur_sel(pc), 0 ) ); 
     1046                } 
    8521047                break; 
    8531048 
     
    8871082                { 
    8881083                    case UR_ATOM_OFF: 
     1084                        gr_disable( "pv" ); 
     1085                        /* 
    8891086                        glDisable( GL_VERTEX_PROGRAM_POINT_SIZE ); 
    8901087                        glDisable( GL_POINT_SPRITE ); 
     1088                        */ 
    8911089                        break; 
    8921090 
     
    9111109                        //glBlendFunc( GL_ONE, GL_ONE_MINUS_SRC_ALPHA ); 
    9121110                        glBlendFunc( GL_SRC_ALPHA, GL_ONE ); 
    913                         glEnable( GL_POINT_SPRITE ); 
     1111                        gr_enable( "p" ); 
     1112                        //glEnable( GL_POINT_SPRITE ); 
    9141113                        break; 
    9151114 
     
    9411140            } 
    9421141                break; 
    943  
     1142#if 0 
    9441143            case DOP_LIGHTING:  // logic!   on/off 
    9451144                ++pc; 
     
    9521151                } 
    9531152                break; 
    954  
     1153#endif 
    9551154            case DOP_COLOR: 
    9561155                ++pc; 
     
    9841183            case DOP_COLORS: 
    9851184                ++pc; 
    986                 if( ur_is(pc, UT_BLOCK) ) 
    987                     _state.colorVals = ur_block(pc)->ptr.cells; 
     1185                VAL_WORD_OR_PC 
     1186                if( ur_is(val, UT_BLOCK) ) 
     1187                    _state.colorVals = ur_block(val)->ptr.cells; 
    9881188                break; 
    9891189 
    9901190            case DOP_VERTS: 
    9911191                ++pc; 
    992                 if( ur_is(pc, UT_VECTOR) ) 
    993                     _state.vertVals = ur_bin(pc)->ptr.f; 
     1192                VAL_WORD_OR_PC 
     1193                if( ur_is(val, UT_VECTOR) ) 
     1194                    _state.vertVals = ur_bin(val)->ptr.f; 
    9941195                break; 
    9951196 
    9961197            case DOP_NORMALS: 
    9971198                ++pc; 
    998                 if( ur_is(pc, UT_VECTOR) ) 
    999                     _state.normVals = ur_bin(pc)->ptr.f; 
     1199                VAL_WORD_OR_PC 
     1200                if( ur_is(val, UT_VECTOR) ) 
     1201                    _state.normVals = ur_bin(val)->ptr.f; 
    10001202                break; 
    10011203 
    10021204            case DOP_UVS: 
    10031205                ++pc; 
    1004                 if( ur_is(pc, UT_VECTOR) ) 
    1005                     _state.uvVals = ur_bin(pc)->ptr.f; 
     1206                VAL_WORD_OR_PC 
     1207                if( ur_is(val, UT_VECTOR) ) 
     1208                    _state.uvVals = ur_bin(val)->ptr.f; 
    10061209                break; 
    10071210 
     
    11381341 
    11391342            case DOP_SAMPLES_QUERY:     // dlist-block process-block 
     1343            { 
     1344                int hidden = ur_sel(pc);    // UR_ATOM_HIDDEN 
     1345 
    11401346                ++pc; 
    11411347                if( ! ur_is(pc, UT_BLOCK) ) 
     
    11441350                _state.samplesQueryId = 0; 
    11451351 
    1146                 glEnable( GL_CULL_FACE ); 
    1147                 glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE ); 
    1148                 glDepthMask( GL_FALSE ); 
     1352                if( hidden ) 
     1353                { 
     1354                    gr_enable( "c" );  //glEnable( GL_CULL_FACE ); 
     1355 
     1356                    glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE ); 
     1357                    glDepthMask( GL_FALSE ); 
     1358                } 
    11491359 
    11501360                // Run draw-list containing samples-begin ops. 
     
    11551365                    glEndQuery( GL_SAMPLES_PASSED ); 
    11561366 
    1157                 glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); 
    1158                 glDepthMask( GL_TRUE ); 
     1367                if( hidden ) 
     1368                { 
     1369                    glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); 
     1370                    glDepthMask( GL_TRUE ); 
     1371                } 
    11591372 
    11601373                ++pc; 
     
    11861399 
    11871400                _state.samplesQueryId = 0; 
     1401            } 
    11881402                break; 
    11891403 
  • branches/thune/thread_safe/gl/draw_ops.h

    r405 r409  
    44#define DOP_END             1 
    55#define DOP_CLEAR           2 
    6 #define DOP_CALL            3 
    7 #define DOP_SOLID           4 
    8 #define DOP_MODEL           5 
    9 #define DOP_DECAL           6 
    10 #define DOP_PARTICLE        7 
    11 #define DOP_COLOR           8 
    12 #define DOP_COLORS          9 
    13 #define DOP_VERTS           10 
    14 #define DOP_NORMALS         11 
    15 #define DOP_UVS             12 
    16 #define DOP_ATTRIB          13 
    17 #define DOP_POINTS          14 
    18 #define DOP_LINES           15 
    19 #define DOP_LINE_STRIP      16 
    20 #define DOP_TRIS            17 
    21 #define DOP_TRI_STRIP       18 
    22 #define DOP_TRI_FAN         19 
    23 #define DOP_QUADS           20 
    24 #define DOP_QUAD_STRIP      21 
    25 #define DOP_CAMERA          22 
    26 #define DOP_LIGHT           23 
    27 #define DOP_LIGHTING        24 
    28 #define DOP_PUSH            25 
    29 #define DOP_POP             26 
    30 #define DOP_TRANSLATE       27 
    31 #define DOP_ROTATE          28 
    32 #define DOP_SCALE           29 
    33 #define DOP_FONT            30 
    34 #define DOP_TEXT            31 
    35 #define DOP_SHADER          32 
    36 #define DOP_FRAMEBUFFER     33 
    37 #define DOP_SHADOW_BEGIN    34 
    38 #define DOP_SHADOW_END      35 
    39 #define DOP_SAMPLES_QUERY   36 
    40 #define DOP_SAMPLES_BEGIN   37 
     6#define DOP_ENABLE          3 
     7#define DOP_DISABLE         4 
     8#define DOP_CALL            5 
     9#define DOP_SOLID           6 
     10#define DOP_MODEL           7 
     11#define DOP_DECAL           8 
     12#define DOP_PARTICLE        9 
     13#define DOP_COLOR           10 
     14#define DOP_COLORS          11 
     15#define DOP_VERTS           12 
     16#define DOP_NORMALS         13 
     17#define DOP_UVS             14 
     18#define DOP_ATTRIB          15 
     19#define DOP_POINTS          16 
     20#define DOP_LINES           17 
     21#define DOP_LINE_STRIP      18 
     22#define DOP_TRIS            19 
     23#define DOP_TRI_STRIP       20 
     24#define DOP_TRI_FAN         21 
     25#define DOP_QUADS           22 
     26#define DOP_QUAD_STRIP      23 
     27#define DOP_CAMERA          24 
     28#define DOP_LIGHT           25 
     29#define DOP_LIGHTING        26 
     30#define DOP_PUSH            27 
     31#define DOP_POP             28 
     32#define DOP_TRANSLATE       29 
     33#define DOP_ROTATE          30 
     34#define DOP_SCALE           31 
     35#define DOP_FONT            32 
     36#define DOP_TEXT            33 
     37#define DOP_SHADER          34 
     38#define DOP_FRAMEBUFFER     35 
     39#define DOP_SHADOW_BEGIN    36 
     40#define DOP_SHADOW_END      37 
     41#define DOP_SAMPLES_QUERY   38 
     42#define DOP_SAMPLES_BEGIN   39 
  • branches/thune/thread_safe/gl/gx.h

    r405 r409  
    131131struct GrRenderState 
    132132{ 
    133     int      stateId; 
    134     UIndex   fontN; 
    135     GLfloat  penX; 
    136     GLfloat  penY; 
     133    int     stateId; 
     134    int     enableMask; 
     135    UIndex  fontN; 
     136    GLfloat penX; 
     137    GLfloat penY; 
    137138 
    138139    GLbitfield  clear; 
  • branches/thune/thread_safe/gl/gx.t

    r405 r409  
    126126    end 
    127127    clear 
     128    enable 
     129    disable 
    128130    call 
    129131    solid 
  • branches/thune/thread_safe/gl/gx_atoms.h

    r403 r409  
    11// This file is automatically generated - do not edit. 
    22 
    3 #define UR_ATOM_DRAW_LIST_OPCODES               313 
    4 #define UR_ATOM_WIDTH           314 
    5 #define UR_ATOM_HEIGHT          315 
    6 #define UR_ATOM_AREA            316 
    7 #define UR_ATOM_RECT            317 
    8 #define UR_ATOM_RASTER          318 
    9 #define UR_ATOM_TEXTURE         319 
    10 #define UR_ATOM_ELEM            320 
     3#define UR_ATOM_DRAW_LIST_OPCODES               307 
     4#define UR_ATOM_WIDTH           308 
     5#define UR_ATOM_HEIGHT          309 
     6#define UR_ATOM_AREA            310 
     7#define UR_ATOM_RECT            311 
     8#define UR_ATOM_RASTER          312 
     9#define UR_ATOM_TEXTURE         313 
     10#define UR_ATOM_ELEM            314 
    1111#define UR_ATOM_CLOSE           174 
    12 #define UR_ATOM_FOCUS           321 
    13 #define UR_ATOM_RESIZE          322 
    14 #define UR_ATOM_KEY_DOWN                323 
    15 #define UR_ATOM_KEY_UP          324 
    16 #define UR_ATOM_MOUSE_MOVE              325 
    17 #define UR_ATOM_MOUSE_UP                326 
    18 #define UR_ATOM_MOUSE_DOWN              327 
    19 #define UR_ATOM_MOUSE_WHEEL             328 
    20 #define UR_ATOM_AMBIENT         329 
    21 #define UR_ATOM_DIFFUSE         330 
    22 #define UR_ATOM_SPECULAR                331 
    23 #define UR_ATOM_POS             332 
    24 #define UR_ATOM_SHADER          333 
    25 #define UR_ATOM_VERTEX          334 
    26 #define UR_ATOM_FRAGMENT                335 
    27 #define UR_ATOM_DEFAULT         336 
    28 #define UR_ATOM_WAIT            337 
    29 #define UR_ATOM_RGB             338 
    30 #define UR_ATOM_RGBA            339 
    31 #define UR_ATOM_DEPTH           340 
    32 #define UR_ATOM_CLAMP           341 
    33 #define UR_ATOM_REPEAT          342 
    34 #define UR_ATOM_NEAREST         343 
    35 #define UR_ATOM_LINEAR          344 
    36 #define UR_ATOM_MIN             345 
    37 #define UR_ATOM_MAG             346 
    38 #define UR_ATOM_MIPMAP          347 
     12#define UR_ATOM_FOCUS           315 
     13#define UR_ATOM_RESIZE          316 
     14#define UR_ATOM_KEY_DOWN                317 
     15#define UR_ATOM_KEY_UP          318 
     16#define UR_ATOM_MOUSE_MOVE              319 
     17#define UR_ATOM_MOUSE_UP                320