Ignore:
Timestamp:
Feb 1, 2000, 8:42:09 PM (26 years ago)
Author:
sandervl
Message:

JvdH:Ported SGI GLUT sources + Opengl update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/opengl/glucb32.cpp

    r2532 r2595  
    1 /* $Id: glucb32.cpp,v 1.1 2000-01-27 21:49:12 sandervl Exp $ */
     1/* $Id: glucb32.cpp,v 1.2 2000-02-01 19:41:54 sandervl Exp $ */
    22/*****************************************************************************/
    33/*                                                                           */
     
    6060GLUCB *OS2glucbCreateGlucb(GLenum objtype,void *object,GLenum which,GLint num_parms)
    6161{
    62   GLUCB *glucb;
    63   int    i;
     62  GLUCB  *glucb;
     63  APIRET  rc;
     64  int     i;
    6465
    6566  glucb=(GLUCB *)malloc(sizeof(GLUCB));
     
    7071  glucb->parms_on_stack=num_parms;
    7172
    72   DosAllocMem((PPVOID)(&glucb->entryAddress),
    73               4096,
    74               PAG_COMMIT | PAG_EXECUTE | PAG_READ | PAG_WRITE);
     73  rc=DosAllocMem((PPVOID)(&glucb->entryAddress),
     74                 4096,
     75                 PAG_COMMIT | PAG_EXECUTE | PAG_READ | PAG_WRITE);
    7576
    7677  /* Setup the actual machine-code in this page... */
     
    121122{
    122123  ULONG  addr=(ULONG)Address;
    123   ULONG  addr_e=(ULONG)glucb->entryAddress+4*glucb->parms_on_stack;
    124   ULONG  addr_offset=addr_e-addr-5;
     124  ULONG  addr_call=4*glucb->parms_on_stack+1;
    125125  BYTE  *code=(BYTE *)glucb->entryAddress;
    126 
    127   *((ULONG *)code[addr_e+1])=addr_offset;
     126  ULONG  addr_e=(ULONG)code+addr_call;
     127  LONG   addr_offset=addr-addr_e-4;
     128
     129  (((ULONG *)addr_e)[0])=addr_offset;
    128130}
    129131
     
    199201                                        GLUWINCALLBACK CallBackFunc)
    200202{
    201   dprintf(("GLUCALLBACK: Registering Callback!\n"));
    202 
    203203  switch(objtype)
    204204    {
     
    228228        switch (which)
    229229          {
    230             case GLU_TESS_BEGIN:
    231             case GLU_TESS_VERTEX:
    232             case GLU_TESS_ERROR:
    233             case GLU_TESS_EDGE_FLAG:
    234             case GLU_TESS_COMBINE:
    235             case GLU_TESS_BEGIN_DATA:
    236             case GLU_TESS_VERTEX_DATA:
    237             case GLU_TESS_END_DATA:
    238             case GLU_TESS_ERROR_DATA:
    239             case GLU_TESS_EDGE_FLAG_DATA:
    240             case GLU_TESS_COMBINE_DATA:
    241               return OS2glucbGenerateCallbackFunc(objtype,object,which,CallBackFunc,1);
    242 
    243230            case GLU_TESS_END:
    244231              return OS2glucbGenerateCallbackFunc(objtype,object,which,CallBackFunc,0);
     232
     233            case GLU_TESS_BEGIN:
     234            case GLU_TESS_EDGE_FLAG:
     235            case GLU_TESS_END_DATA:
     236            case GLU_TESS_ERROR:
     237            case GLU_TESS_VERTEX:
     238              return OS2glucbGenerateCallbackFunc(objtype,object,which,CallBackFunc,1);
     239
     240            case GLU_TESS_BEGIN_DATA:
     241            case GLU_TESS_EDGE_FLAG_DATA:
     242            case GLU_TESS_ERROR_DATA:
     243            case GLU_TESS_VERTEX_DATA:
     244              return OS2glucbGenerateCallbackFunc(objtype,object,which,CallBackFunc,2);
     245
     246            case GLU_TESS_COMBINE:
     247              return OS2glucbGenerateCallbackFunc(objtype,object,which,CallBackFunc,4);
     248
     249            case GLU_TESS_COMBINE_DATA:
     250              return OS2glucbGenerateCallbackFunc(objtype,object,which,CallBackFunc,5);
    245251
    246252            default:                  /* All legal callback values defined!*/
Note: See TracChangeset for help on using the changeset viewer.