Show
Ignore:
Timestamp:
05/17/07 18:27:45 (18 months ago)
Author:
krobillard
Message:

Thune - OpenGL version works in thread_safe branch.

Files:
1 modified

Legend:

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

    r382 r390  
    2626#include <string.h> 
    2727#include <glv_keys.h> 
    28 #include "os.h" 
     28#include "env.h" 
    2929#include "glh.h" 
    3030#include "gx.h" 
     
    571571    UCell* res = ur_s_prev( tos ); 
    572572 
    573     if( ur_stringSlice( tos, &cpA, &cpB ) ) 
     573    if( ur_stringSlice( ut, tos, &cpA, &cpB ) ) 
    574574    { 
    575575        if( ur_is( res, UT_FONT ) ) 
     
    589589 
    590590 
    591 // ( -- blk) 
     591// (blk -- blk) 
    592592UR_CALL( uc_display_events ) 
    593593{ 
    594     UIndex blkN; 
    595  
    596     UR_CALL_UNUSED_TOS 
    597  
    598     blkN = ur_holdIndex( ur_thread->env, gxEnv.eventBlkHold ); 
    599     gxEnv.eventBlk = ur_blockPtr( blkN ); 
     594    if( ! ur_is(tos, UT_BLOCK) ) 
     595    { 
     596        ur_throwErr( UR_ERR_DATATYPE, "display.events expected block!" ); 
     597        return; 
     598    } 
     599 
     600    gxEnv.eventBlk = ur_block( tos ); 
    600601    gxEnv.eventBlk->used = 0; 
    601602 
    602603    glv_handleEvents( gView ); 
    603  
    604     UR_S_GROW; 
    605  
    606     ur_initType(UR_TOS, UT_BLOCK); 
    607     ur_setSeries(UR_TOS, blkN, 0); 
    608604} 
    609605 
     
    670666    glGetIntegerv( GL_VIEWPORT, vp ); 
    671667 
    672     ur_makeRaster( ur_s_next(tos), UR_RAST_RGB, vp[2], vp[3], &bin ); 
     668    ur_makeRaster( ut, ur_s_next(tos), UR_RAST_RGB, vp[2], vp[3], &bin ); 
    673669    UR_S_GROW; 
    674670 
     
    14291425#if MAKE_ATOM_HEADER 
    14301426#define FIXED_ATOM(str,len,def) \ 
    1431     printf( "#define %s\t\t%d\n", #def, ur_intern(env,str,len) ); 
     1427    printf( "#define %s\t\t%d\n", #def, ur_intern(str,len) ); 
    14321428#else 
    14331429#ifdef DEBUG 
    1434 #define FIXED_ATOM(str,len,def)     assert( ur_intern(env,str,len) == def ); 
     1430#define FIXED_ATOM(str,len,def)     assert( ur_intern(str,len) == def ); 
    14351431#else 
    1436 #define FIXED_ATOM(str,len,def)     ur_intern(env,str,len); 
     1432#define FIXED_ATOM(str,len,def)     ur_intern(str,len); 
    14371433#endif 
    14381434#endif 
    14391435 
    14401436// Intern commonly used atoms. 
    1441 static void _createFixedAtoms( UrlanEnv* env ) 
     1437static void _createFixedAtoms( UThread* ut ) 
    14421438{ 
    14431439#if MAKE_ATOM_HEADER 
     
    15011497{ 
    15021498    const GLubyte* gstr; 
     1499    UThread* ut = env->threads; 
    15031500 
    15041501#if 0 
     
    15111508    gxEnv.prevMouseY = MOUSE_UNSET; 
    15121509 
    1513     _createFixedAtoms( env ); 
     1510    _createFixedAtoms( ut ); 
    15141511 
    15151512    gxEnv.eventBlk = 0; 
    1516     gxEnv.eventBlkHold = ur_hold( env, UT_BLOCK, ur_makeBlock( 32 ) ); 
    1517  
    1518  
    1519     ur_makeCalls( env, _gxCalls, sizeof(_gxCalls) / sizeof(UCallDef) ); 
    1520  
    1521     { 
    1522         int ok = ur_evalCStr( env->threads, _gxBoot, sizeof(_gxBoot) ); 
     1513 
     1514 
     1515    ur_makeCalls( ut, _gxCalls, sizeof(_gxCalls) / sizeof(UCallDef) ); 
     1516 
     1517    { 
     1518        int ok = ur_evalCStr( ut, _gxBoot, sizeof(_gxBoot) ); 
    15231519        if( ok != UR_EVAL_OK ) 
    15241520            return ok; 
     
    15371533    if( ! gView ) 
    15381534    { 
    1539         ur_throwErr( env->threads, UR_EX_INTERNAL, "glv_create() failed" ); 
     1535        ur_throwErr( ut, UR_EX_INTERNAL, "glv_create() failed" ); 
    15401536        return UR_EVAL_ERROR; 
    15411537    } 
     
    15461542        glv_destroy( gView ); 
    15471543        gView = 0; 
    1548         ur_throwErr( env->threads, UR_EX_INTERNAL, "OpenGL 2.0 required" ); 
     1544        ur_throwErr( ut, UR_EX_INTERNAL, "OpenGL 2.0 required" ); 
    15491545        return UR_EVAL_ERROR; 
    15501546    } 
     
    15651561void gx_shutdown( UrlanEnv* env ) 
    15661562{ 
     1563    (void) env; 
    15671564#if 0 
    15681565    resd_free( &gEnv.resd ); 
     
    15741571 
    15751572    glv_destroy( gView ); 
    1576  
    1577     ur_release( env, gxEnv.eventBlkHold ); 
    15781573} 
    15791574