home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 5 / MA_Cover_5.iso / ppc / mesa / src / texobj.s < prev    next >
Encoding:
Text File  |  1998-01-31  |  23.0 KB  |  1,414 lines

  1.  
  2. ; Storm C Compiler
  3. ; TEMP:Mesa_2_5/src/texobj.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _gl_free_texture_image
  7.     XREF    _HashFindFreeKeyBlock
  8.     XREF    _HashRemove
  9.     XREF    _HashInsert
  10.     XREF    _HashLookup
  11.     XREF    _gl_error
  12.     XREF    _gl_problem
  13.     XREF    _free
  14.     XREF    _calloc
  15.     XREF    _std__in
  16.     XREF    _std__out
  17.     XREF    _std__err
  18.     XREF    _CC
  19.  
  20.     SECTION "_gl_alloc_texture_object:0",CODE
  21.  
  22.  
  23. ;struct gl_texture_object *
  24.     XDEF    _gl_alloc_texture_object
  25. _gl_alloc_texture_object
  26. L124    EQU    -$C
  27.     link    a5,#L124
  28.     movem.l    d2/d3/a2,-(a7)
  29.     movem.l    $C(a5),d2/d3
  30. L118
  31. ;   obj = (struct gl_texture_object *)
  32.     pea    $480.w
  33.     pea    1.w
  34.     jsr    _calloc
  35.     addq.w    #$8,a7
  36.     move.l    d0,a2
  37. ;   if (obj) 
  38.     cmp.w    #0,a2
  39.     beq    L123
  40. L119
  41. ;      obj->Name = name;
  42.     move.l    d2,4(a2)
  43. ;      obj->Dimensions = dimensions;
  44.     move.l    d3,$8(a2)
  45. ;      obj->WrapS = GL_REPEAT;
  46.     move.l    #$2901,$20(a2)
  47. ;      obj->WrapT = GL_REPEAT;
  48.     move.l    #$2901,$24(a2)
  49. ;      obj->MinFilter = GL_NEAREST_MIPMAP_LINEAR;
  50.     move.l    #$2702,$2C(a2)
  51. ;      obj->MagFilter = GL_LINEAR;
  52.     move.l    #$2601,$30(a2)
  53. ;      obj->MinMagThresh = 0.0F;
  54.     clr.l    $34(a2)
  55. ;      obj->Palette[0] = 255;
  56.     lea    $64(a2),a0
  57.     move.b    #$FF,(a0)
  58. ;      obj->Palette[1] = 255;
  59.     lea    $64(a2),a0
  60.     addq.w    #1,a0
  61.     move.b    #$FF,(a0)
  62. ;      obj->Palette[2] = 255;
  63.     lea    $64(a2),a0
  64.     addq.w    #2,a0
  65.     move.b    #$FF,(a0)
  66. ;      obj->Palette[3] = 255;
  67.     lea    $64(a2),a0
  68.     addq.w    #3,a0
  69.     move.b    #$FF,(a0)
  70. ;      obj->PaletteSize = 1;
  71.     move.l    #1,$464(a2)
  72. ;      obj->PaletteIntFormat = GL_RGBA;
  73.     move.l    #$1908,$468(a2)
  74. ;      obj->PaletteFormat = GL_RGBA;
  75.     move.l    #$1908,$46C(a2)
  76. ;      if (shared) 
  77.     tst.l    $8(a5)
  78.     beq.b    L121
  79. L120
  80. ;     obj->Next = shared->TexObjectList;
  81.     move.l    $8(a5),a1
  82.     move.l    $C(a1),a0
  83.     move.l    a0,$47C(a2)
  84. ;     shared->TexObjectList = obj;
  85.     move.l    $8(a5),a0
  86.     move.l    a2,$C(a0)
  87. L121
  88. ;      if (name > 0) 
  89.     tst.l    d2
  90.     beq.b    L123
  91. L122
  92. ;     HashInsert(shared->TexObjects, name, obj);
  93.     move.l    a2,-(a7)
  94.     move.l    d2,-(a7)
  95.     move.l    $8(a5),a1
  96.     move.l    $8(a1),a0
  97.     move.l    a0,-(a7)
  98.     jsr    _HashInsert
  99.     add.w    #$C,a7
  100. L123
  101.     move.l    a2,d0
  102.     movem.l    (a7)+,d2/d3/a2
  103.     unlk    a5
  104.     rts
  105.  
  106.     SECTION "_gl_free_texture_object:0",CODE
  107.  
  108.     rts
  109.  
  110. ;void gl_free_texture_object( struct gl_shared_state *shared,
  111.     XDEF    _gl_free_texture_object
  112. _gl_free_texture_object
  113. L142    EQU    -$14
  114.     link    a5,#L142
  115.     movem.l    d2/a2/a3,-(a7)
  116.     move.l    $C(a5),a2
  117. L125
  118. ;   if (shared) 
  119.     tst.l    $8(a5)
  120.     beq.b    L134
  121. L126
  122. ;      tprev = NULL;
  123.     sub.l    a1,a1
  124. ;      tcurr = shared->TexObjectList;
  125.     move.l    $8(a5),a3
  126.     move.l    $C(a3),a0
  127. ;      while (tcurr) 
  128.     bra.b    L133
  129. L127
  130. ;     if (tcurr==t) 
  131.     cmp.l    a2,a0
  132.     bne.b    L132
  133. L128
  134. ;        if (tprev) 
  135.     cmp.w    #0,a1
  136.     beq.b    L130
  137. L129
  138. ;           tprev->Next = t->Next;
  139.     move.l    $47C(a2),a0
  140.     move.l    a0,$47C(a1)
  141.     bra.b    L131
  142. L130
  143. ;           shared->TexObjectList = t->Next;
  144.     move.l    $47C(a2),a0
  145.     move.l    $8(a5),a1
  146.     move.l    a0,$C(a1)
  147. L131
  148. ;        
  149.     bra.b    L134
  150. L132
  151. ;     tprev = tcurr;
  152.     move.l    a0,a1
  153. ;     tcurr = tcurr->Next;
  154.     move.l    $47C(a0),a0
  155. L133
  156.     cmp.w    #0,a0
  157.     bne.b    L127
  158. L134
  159. ;   if (t->Name) 
  160.     move.l    4(a2),d0
  161.     beq.b    L136
  162. L135
  163. ;      HashRemove(shared->TexObjects, t->Name);
  164.     move.l    4(a2),d0
  165.     move.l    d0,-(a7)
  166.     move.l    $8(a5),a1
  167.     move.l    $8(a1),a0
  168.     move.l    a0,-(a7)
  169.     jsr    _HashRemove
  170.     addq.w    #$8,a7
  171. L136
  172. ;      for (i=0;
  173.     moveq    #0,d2
  174.     bra.b    L140
  175. L137
  176. ;     if (t->Image[i]) 
  177.     lea    $38(a2),a0
  178.     lea    0(a0,d2.l*4),a0
  179.     move.l    (a0),d0
  180.     beq.b    L139
  181. L138
  182. ;        gl_free_texture_image( t->Image[i] );
  183.     lea    $38(a2),a0
  184.     lea    0(a0,d2.l*4),a0
  185.     move.l    (a0),a0
  186.     move.l    a0,-(a7)
  187.     jsr    _gl_free_texture_image
  188.     addq.w    #4,a7
  189. L139
  190.     addq.l    #1,d2
  191. L140
  192.     cmp.l    #$B,d2
  193.     blo.b    L137
  194. L141
  195. ;   free( t );
  196.     move.l    a2,-(a7)
  197.     jsr    _free
  198.     addq.w    #4,a7
  199.     movem.l    (a7)+,d2/a2/a3
  200.     unlk    a5
  201.     rts
  202.  
  203.     SECTION "_gl_test_texture_object_completeness:0",CODE
  204.  
  205.  
  206. ;void gl_test_texture_object_completeness( struct gl_texture_object *
  207.     XDEF    _gl_test_texture_object_completeness
  208. _gl_test_texture_object_completeness
  209.     movem.l    d2-d4,-(a7)
  210.     move.l    $10(a7),a0
  211. L144
  212. ;   t->Complete = GL_TRUE;
  213.     move.b    #1,$476(a0)
  214. ;   if (!t->Image[0] || !t->Image[0]->Data) 
  215.     lea    $38(a0),a1
  216.     tst.l    (a1)
  217.     beq.b    L146
  218. L145
  219.     lea    $38(a0),a1
  220.     move.l    (a1),a1
  221.     move.l    $34(a1),a1
  222.     cmp.w    #0,a1
  223.     bne.b    L147
  224. L146
  225. ;      t->Complete = GL_FALSE;
  226.     clr.b    $476(a0)
  227.     movem.l    (a7)+,d2-d4
  228.     rts
  229. L147
  230. ;   if (t->MinFilter!=GL_NEAREST && t->MinFilter!=GL_LINEAR) 
  231.     move.l    $2C(a0),d0
  232.     cmp.l    #$2600,d0
  233.     beq    L220
  234. L148
  235.     move.l    $2C(a0),d0
  236.     cmp.l    #$2601,d0
  237.     beq    L220
  238. L149
  239. ;      for (i=1;
  240.     moveq    #1,d0
  241.     bra.b    L158
  242. L150
  243. ;     if (t->Image[i]) 
  244.     lea    $38(a0),a1
  245.     lea    0(a1,d0.l*4),a1
  246.     move.l    (a1),d1
  247.     beq.b    L157
  248. L151
  249. ;        if (!t->Image[i]->Data) 
  250.     lea    $38(a0),a1
  251.     lea    0(a1,d0.l*4),a1
  252.     move.l    (a1),a1
  253.     move.l    $34(a1),a1
  254.     cmp.w    #0,a1
  255.     bne.b    L153
  256. L152
  257. ;           t->Complete = GL_FALSE;
  258.     clr.b    $476(a0)
  259.     movem.l    (a7)+,d2-d4
  260.     rts
  261. L153
  262. ;        if (t->Image[i]->Format != t->Image[0]->Format) 
  263.     lea    $38(a0),a1
  264.     lea    0(a1,d0.l*4),a1
  265.     move.l    (a1),a1
  266.     move.l    (a1),d2
  267.     lea    $38(a0),a1
  268.     move.l    (a1),a1
  269.     move.l    (a1),d1
  270.     cmp.l    d1,d2
  271.     beq.b    L155
  272. L154
  273. ;           t->Complete = GL_FALSE;
  274.     clr.b    $476(a0)
  275.     movem.l    (a7)+,d2-d4
  276.     rts
  277. L155
  278. ;        if (t->Image[i]->Border != t->Image[0]->Border) 
  279.     lea    $38(a0),a1
  280.     lea    0(a1,d0.l*4),a1
  281.     move.l    (a1),a1
  282.     move.l    $8(a1),d2
  283.     lea    $38(a0),a1
  284.     move.l    (a1),a1
  285.     move.l    $8(a1),d1
  286.     cmp.l    d1,d2
  287.     beq.b    L157
  288. L156
  289. ;           t->Complete = GL_FALSE;
  290.     clr.b    $476(a0)
  291.     movem.l    (a7)+,d2-d4
  292.     rts
  293. L157
  294.     addq.l    #1,d0
  295. L158
  296.     cmp.l    #$B,d0
  297.     blt    L150
  298. L159
  299. ;           return;
  300. ;      if (t->Dimensions==1) 
  301.     move.l    $8(a0),d0
  302.     cmp.l    #1,d0
  303.     bne    L178
  304. L160
  305. ;     GLuint width = t->Image[0]->Width2;
  306.     lea    $38(a0),a1
  307.     move.l    (a1),a1
  308.     move.l    $18(a1),d1
  309. ;     for (i=1;
  310.     moveq    #1,d0
  311.     bra    L176
  312. L161
  313. ;        if (width>1) 
  314.     cmp.l    #1,d1
  315.     bls.b    L163
  316. L162
  317. ;           width /= 2;
  318.     moveq    #1,d2
  319.     lsr.l    d2,d1
  320. L163
  321. ;        if (!t->Image[i]) 
  322.     lea    $38(a0),a1
  323.     lea    0(a1,d0.l*4),a1
  324.     tst.l    (a1)
  325.     bne.b    L165
  326. L164
  327. ;           t->Complete = GL_FALSE;
  328.     clr.b    $476(a0)
  329.     movem.l    (a7)+,d2-d4
  330.     rts
  331. L165
  332. ;        if (!t->Image[i]->Data) 
  333.     lea    $38(a0),a1
  334.     lea    0(a1,d0.l*4),a1
  335.     move.l    (a1),a1
  336.     move.l    $34(a1),a1
  337.     cmp.w    #0,a1
  338.     bne.b    L167
  339. L166
  340. ;           t->Complete = GL_FALSE;
  341.     clr.b    $476(a0)
  342.     movem.l    (a7)+,d2-d4
  343.     rts
  344. L167
  345. ;        if (t->Image[i]->Format != t->Image[0]->Format) 
  346.     lea    $38(a0),a1
  347.     lea    0(a1,d0.l*4),a1
  348.     move.l    (a1),a1
  349.     move.l    (a1),d3
  350.     lea    $38(a0),a1
  351.     move.l    (a1),a1
  352.     move.l    (a1),d2
  353.     cmp.l    d2,d3
  354.     beq.b    L169
  355. L168
  356. ;           t->Complete = GL_FALSE;
  357.     clr.b    $476(a0)
  358.     movem.l    (a7)+,d2-d4
  359.     rts
  360. L169
  361. ;        if (t->Image[i]->Border != t->Image[0]->Border) 
  362.     lea    $38(a0),a1
  363.     lea    0(a1,d0.l*4),a1
  364.     move.l    (a1),a1
  365.     move.l    $8(a1),d3
  366.     lea    $38(a0),a1
  367.     move.l    (a1),a1
  368.     move.l    $8(a1),d2
  369.     cmp.l    d2,d3
  370.     beq.b    L171
  371. L170
  372. ;           t->Complete = GL_FALSE;
  373.     clr.b    $476(a0)
  374.     movem.l    (a7)+,d2-d4
  375.     rts
  376. L171
  377. ;        if (t->Image[i]->Width2 != width ) 
  378.     lea    $38(a0),a1
  379.     lea    0(a1,d0.l*4),a1
  380.     move.l    (a1),a1
  381.     move.l    $18(a1),d2
  382.     cmp.l    d1,d2
  383.     beq.b    L173
  384. L172
  385. ;           t->Complete = GL_FALSE;
  386.     clr.b    $476(a0)
  387.     movem.l    (a7)+,d2-d4
  388.     rts
  389. L173
  390. ;        if (width==1) 
  391.     cmp.l    #1,d1
  392.     bne.b    L175
  393. L174
  394.     movem.l    (a7)+,d2-d4
  395.     rts
  396. L175
  397.     addq.l    #1,d0
  398. L176
  399.     cmp.l    #$B,d0
  400.     blt    L161
  401. L177
  402. ;           return;
  403.     bra    L220
  404. L178
  405. ;      else if (t->Dimensions==2) 
  406.     move.l    $8(a0),d0
  407.     cmp.l    #2,d0
  408.     bne    L196
  409. L179
  410. ;     GLuint width = t->Image[0]->Width2;
  411.     lea    $38(a0),a1
  412.     move.l    (a1),a1
  413.     move.l    $18(a1),d2
  414. ;     GLuint height = t->Image[0]->Height2;
  415.     lea    $38(a0),a1
  416.     move.l    (a1),a1
  417.     move.l    $1C(a1),d1
  418. ;     for (i=1;
  419.     moveq    #1,d0
  420.     bra    L194
  421. L180
  422. ;        if (width>1) 
  423.     cmp.l    #1,d2
  424.     bls.b    L182
  425. L181
  426. ;           width /= 2;
  427.     moveq    #1,d3
  428.     lsr.l    d3,d2
  429. L182
  430. ;        if (height>1) 
  431.     cmp.l    #1,d1
  432.     bls.b    L184
  433. L183
  434. ;           height /= 2;
  435.     moveq    #1,d3
  436.     lsr.l    d3,d1
  437. L184
  438. ;        if (!t->Image[i]) 
  439.     lea    $38(a0),a1
  440.     lea    0(a1,d0.l*4),a1
  441.     tst.l    (a1)
  442.     bne.b    L186
  443. L185
  444. ;           t->Complete = GL_FALSE;
  445.     clr.b    $476(a0)
  446.     movem.l    (a7)+,d2-d4
  447.     rts
  448. L186
  449. ;        if (t->Image[i]->Width2 != width) 
  450.     lea    $38(a0),a1
  451.     lea    0(a1,d0.l*4),a1
  452.     move.l    (a1),a1
  453.     move.l    $18(a1),d3
  454.     cmp.l    d2,d3
  455.     beq.b    L188
  456. L187
  457. ;           t->Complete = GL_FALSE;
  458.     clr.b    $476(a0)
  459.     movem.l    (a7)+,d2-d4
  460.     rts
  461. L188
  462. ;        if (t->Image[i]->Height2 != height) 
  463.     lea    $38(a0),a1
  464.     lea    0(a1,d0.l*4),a1
  465.     move.l    (a1),a1
  466.     move.l    $1C(a1),d3
  467.     cmp.l    d1,d3
  468.     beq.b    L190
  469. L189
  470. ;           t->Complete = GL_FALSE;
  471.     clr.b    $476(a0)
  472.     movem.l    (a7)+,d2-d4
  473.     rts
  474. L190
  475. ;        if (width==1 && height==1) 
  476.     cmp.l    #1,d2
  477.     bne.b    L193
  478. L191
  479.     cmp.l    #1,d1
  480.     bne.b    L193
  481. L192
  482.     movem.l    (a7)+,d2-d4
  483.     rts
  484. L193
  485.     addq.l    #1,d0
  486. L194
  487.     cmp.l    #$B,d0
  488.     blt    L180
  489. L195
  490. ;           return;
  491.     bra    L220
  492. L196
  493. ;      else if (t->Dimensions==3) 
  494.     move.l    $8(a0),d0
  495.     cmp.l    #3,d0
  496.     bne    L219
  497. L197
  498. ;     GLuint width = t->Image[0]->Width2;
  499.     lea    $38(a0),a1
  500.     move.l    (a1),a1
  501.     move.l    $18(a1),d3
  502. ;     GLuint height = t->Image[0]->Height2;
  503.     lea    $38(a0),a1
  504.     move.l    (a1),a1
  505.     move.l    $1C(a1),d2
  506. ;     GLuint depth = t->Image[0]->Depth2;
  507.     lea    $38(a0),a1
  508.     move.l    (a1),a1
  509.     move.l    $20(a1),d1
  510. ;     for (i=1;
  511.     moveq    #1,d0
  512.     bra    L217
  513. L198
  514. ;        if (width>1) 
  515.     cmp.l    #1,d3
  516.     bls.b    L200
  517. L199
  518. ;           width /= 2;
  519.     moveq    #1,d4
  520.     lsr.l    d4,d3
  521. L200
  522. ;        if (height>1) 
  523.     cmp.l    #1,d2
  524.     bls.b    L202
  525. L201
  526. ;           height /= 2;
  527.     moveq    #1,d4
  528.     lsr.l    d4,d2
  529. L202
  530. ;        if (depth>1) 
  531.     cmp.l    #1,d1
  532.     bls.b    L204
  533. L203
  534. ;           depth /= 2;
  535.     moveq    #1,d4
  536.     lsr.l    d4,d1
  537. L204
  538. ;        if (!t->Image[i]) 
  539.     lea    $38(a0),a1
  540.     lea    0(a1,d0.l*4),a1
  541.     tst.l    (a1)
  542.     bne.b    L206
  543. L205
  544. ;           t->Complete = GL_FALSE;
  545.     clr.b    $476(a0)
  546.     movem.l    (a7)+,d2-d4
  547.     rts
  548. L206
  549. ;        if (t->Image[i]->Width2 != width) 
  550.     lea    $38(a0),a1
  551.     lea    0(a1,d0.l*4),a1
  552.     move.l    (a1),a1
  553.     move.l    $18(a1),d4
  554.     cmp.l    d3,d4
  555.     beq.b    L208
  556. L207
  557. ;           t->Complete = GL_FALSE;
  558.     clr.b    $476(a0)
  559.     movem.l    (a7)+,d2-d4
  560.     rts
  561. L208
  562. ;        if (t->Image[i]->Height2 != height) 
  563.     lea    $38(a0),a1
  564.     lea    0(a1,d0.l*4),a1
  565.     move.l    (a1),a1
  566.     move.l    $1C(a1),d4
  567.     cmp.l    d2,d4
  568.     beq.b    L210
  569. L209
  570. ;           t->Complete = GL_FALSE;
  571.     clr.b    $476(a0)
  572.     movem.l    (a7)+,d2-d4
  573.     rts
  574. L210
  575. ;        if (t->Image[i]->Depth2 != depth) 
  576.     lea    $38(a0),a1
  577.     lea    0(a1,d0.l*4),a1
  578.     move.l    (a1),a1
  579.     move.l    $20(a1),d4
  580.     cmp.l    d1,d4
  581.     beq.b    L212
  582. L211
  583. ;           t->Complete = GL_FALSE;
  584.     clr.b    $476(a0)
  585.     movem.l    (a7)+,d2-d4
  586.     rts
  587. L212
  588. ;        if (width==1 && height==1 && depth==1) 
  589.     cmp.l    #1,d3
  590.     bne.b    L216
  591. L213
  592.     cmp.l    #1,d2
  593.     bne.b    L216
  594. L214
  595.     cmp.l    #1,d1
  596.     bne.b    L216
  597. L215
  598.     movem.l    (a7)+,d2-d4
  599.     rts
  600. L216
  601.     addq.l    #1,d0
  602. L217
  603.     cmp.l    #$B,d0
  604.     blt    L198
  605. L218
  606. ;           return;
  607.     bra.b    L220
  608. L219
  609. ;     gl_problem(NULL, "Bug in gl_test_texture_object_completeness\n");
  610.     move.l    #L143,-(a7)
  611.     clr.l    -(a7)
  612.     jsr    _gl_problem
  613.     addq.w    #$8,a7
  614. L220
  615.     movem.l    (a7)+,d2-d4
  616.     rts
  617.  
  618. L143
  619.     dc.b    'Bug in gl_test_texture_object_completeness',$A,0
  620.  
  621.     SECTION "_gl_GenTextures:0",CODE
  622.  
  623.  
  624. ;void gl_GenTextures( GLcontext *ctx, GLsizei n, GLuint *texName )
  625.     XDEF    _gl_GenTextures
  626. _gl_GenTextures
  627.     movem.l    d2-d4/a2,-(a7)
  628.     movem.l    $18(a7),d3/a2
  629.     move.l    $14(a7),a0
  630. L222
  631. ;   if (INSIDE_BEGIN_END(ctx)) 
  632.     move.l    a0,a1
  633.     add.l    #$E08A,a1
  634.     move.l    (a1),d0
  635.     cmp.l    #$1A00,d0
  636.     beq.b    L224
  637. L223
  638. ;      gl_error( ctx, GL_INVALID_OPERATION, "glGenTextures" );
  639.     move.l    #L221,-(a7)
  640.     pea    $502.w
  641.     move.l    a0,-(a7)
  642.     jsr    _gl_error
  643.     add.w    #$C,a7
  644.     movem.l    (a7)+,d2-d4/a2
  645.     rts
  646. L224
  647. ;   if (n<0) 
  648.     tst.l    d3
  649.     bpl.b    L226
  650. L225
  651. ;      gl_error( ctx, GL_INVALID_VALUE, "glGenTextures" );
  652.     move.l    #L221,-(a7)
  653.     pea    $501.w
  654.     move.l    a0,-(a7)
  655.     jsr    _gl_error
  656.     add.w    #$C,a7
  657.     movem.l    (a7)+,d2-d4/a2
  658.     rts
  659. L226
  660. ;   first = HashFindFreeKeyBlock(ctx->Shared->TexObjects, n);
  661.     move.l    d3,-(a7)
  662.     move.l    (a0),a0
  663.     move.l    $8(a0),a0
  664.     move.l    a0,-(a7)
  665.     jsr    _HashFindFreeKeyBlock
  666.     addq.w    #$8,a7
  667. ;   for (i=0;
  668.     moveq    #0,d2
  669.     bra.b    L228
  670. L227
  671. ;      texName[i] = first + i;
  672.     move.l    d0,d1
  673.     add.l    d2,d1
  674.     lea    0(a2,d2.l*4),a0
  675.     move.l    d1,(a0)
  676.     addq.l    #1,d2
  677. L228
  678.     cmp.l    d3,d2
  679.     blo.b    L227
  680. L229
  681.     movem.l    (a7)+,d2-d4/a2
  682.     rts
  683.  
  684. L221
  685.     dc.b    'glGenTextures',0
  686.  
  687.     SECTION "_gl_DeleteTextures:0",CODE
  688.  
  689.  
  690. ;void gl_DeleteTextures( GLcontext *ctx, GLsizei n, const GLuint *tex
  691.     XDEF    _gl_DeleteTextures
  692. _gl_DeleteTextures
  693. L249    EQU    -$C
  694.     link    a5,#L249
  695.     movem.l    d2/d3/a2,-(a7)
  696.     move.l    $C(a5),d3
  697.     move.l    $8(a5),a2
  698. L231
  699. ;   if (INSIDE_BEGIN_END(ctx)) 
  700.     move.l    a2,a0
  701.     add.l    #$E08A,a0
  702.     move.l    (a0),d0
  703.     cmp.l    #$1A00,d0
  704.     beq.b    L233
  705. L232
  706. ;      gl_error( ctx, GL_INVALID_OPERATION, "glAreTexturesResid
  707.     move.l    #L230,-(a7)
  708.     pea    $502.w
  709.     move.l    a2,-(a7)
  710.     jsr    _gl_error
  711.     add.w    #$C,a7
  712.     movem.l    (a7)+,d2/d3/a2
  713.     unlk    a5
  714.     rts
  715. L233
  716. ;   for (i=0;
  717.     moveq    #0,d2
  718.     bra    L247
  719. L234
  720. ;      if (texName[i]>0) 
  721.     move.l    $10(a5),a1
  722.     lea    0(a1,d2.l*4),a0
  723.     move.l    (a0),d0
  724.     beq    L246
  725. L235
  726. ;     t = (struct gl_texture_object *)
  727.     move.l    $10(a5),a1
  728.     lea    0(a1,d2.l*4),a0
  729.     move.l    (a0),d0
  730.     move.l    d0,-(a7)
  731.     move.l    (a2),a0
  732.     move.l    $8(a0),a0
  733.     move.l    a0,-(a7)
  734.     jsr    _HashLookup
  735.     addq.w    #$8,a7
  736.     move.l    d0,-$8(a5)
  737. ;     if (t) 
  738.     tst.l    -$8(a5)
  739.     beq    L246
  740. L236
  741. ;        if (ctx->Texture.Current1D==t) 
  742.     move.l    a2,a0
  743.     add.l    #$D73C,a0
  744.     lea    (a0),a0
  745.     move.l    $AC(a0),a0
  746.     cmp.l    -$8(a5),a0
  747.     bne.b    L238
  748. L237
  749. ;           ctx->Texture.Current1D = ctx->Shared->Default1D;
  750.     move.l    (a2),a0
  751.     move.l    $10(a0),a0
  752.     move.l    a2,a1
  753.     add.l    #$D7E8,a1
  754.     move.l    a0,(a1)
  755. ;           t->RefCount--;
  756.     move.l    -$8(a5),a0
  757.     move.l    (a0),d0
  758.     subq.l    #1,d0
  759.     move.l    -$8(a5),a0
  760.     move.l    d0,(a0)
  761.     bra.b    L242
  762. L238
  763. ;        else if (ctx->Texture.Current2D==t) 
  764.     move.l    a2,a0
  765.     add.l    #$D73C,a0
  766.     lea    (a0),a0
  767.     move.l    $B0(a0),a0
  768.     cmp.l    -$8(a5),a0
  769.     bne.b    L240
  770. L239
  771. ;           ctx->Texture.Current2D = ctx->Shared->Default2D;
  772.     move.l    (a2),a0
  773.     move.l    $14(a0),a0
  774.     move.l    a2,a1
  775.     add.l    #$D7EC,a1
  776.     move.l    a0,(a1)
  777. ;           t->RefCount--;
  778.     move.l    -$8(a5),a0
  779.     move.l    (a0),d0
  780.     subq.l    #1,d0
  781.     move.l    -$8(a5),a0
  782.     move.l    d0,(a0)
  783.     bra.b    L242
  784. L240
  785. ;        else if (ctx->Texture.Current3D==t) 
  786.     move.l    a2,a0
  787.     add.l    #$D73C,a0
  788.     lea    (a0),a0
  789.     move.l    $B4(a0),a0
  790.     cmp.l    -$8(a5),a0
  791.     bne.b    L242
  792. L241
  793. ;           ctx->Texture.Current3D = ctx->Shared->Default3D;
  794.     move.l    (a2),a0
  795.     move.l    $18(a0),a0
  796.     move.l    a2,a1
  797.     add.l    #$D7F0,a1
  798.     move.l    a0,(a1)
  799. ;           t->RefCount--;
  800.     move.l    -$8(a5),a0
  801.     move.l    (a0),d0
  802.     subq.l    #1,d0
  803.     move.l    -$8(a5),a0
  804.     move.l    d0,(a0)
  805. L242
  806. ;        if (ctx->Driver.DeleteTexture) 
  807.     lea    $8A0(a2),a0
  808.     move.l    $C8(a0),a0
  809.     cmp.w    #0,a0
  810.     beq.b    L244
  811. L243
  812. ;           (*ctx->Driver.DeleteTexture)( ctx, t );
  813.     move.l    -$8(a5),-(a7)
  814.     move.l    a2,-(a7)
  815.     lea    $8A0(a2),a0
  816.     move.l    $C8(a0),a0
  817.     jsr    (a0)
  818.     addq.w    #$8,a7
  819. L244
  820. ;        if (t->RefCount==0) 
  821.     move.l    -$8(a5),a0
  822.     move.l    (a0),d0
  823.     bne.b    L246
  824. L245
  825. ;           gl_free_texture_object(ctx->Shared, t);
  826.     move.l    -$8(a5),-(a7)
  827.     move.l    (a2),a0
  828.     move.l    a0,-(a7)
  829.     jsr    _gl_free_texture_object
  830.     addq.w    #$8,a7
  831. L246
  832.     addq.l    #1,d2
  833. L247
  834.     cmp.l    d3,d2
  835.     blo    L234
  836. L248
  837.     movem.l    (a7)+,d2/d3/a2
  838.     unlk    a5
  839.     rts
  840.  
  841. L230
  842.     dc.b    'glAreTexturesResident',0
  843.  
  844.     SECTION "_gl_BindTexture:0",CODE
  845.  
  846.  
  847. ;void gl_BindTexture( GLcontext *ctx, GLenum target, GLuint texName )
  848.     XDEF    _gl_BindTexture
  849. _gl_BindTexture
  850. L290    EQU    -$40
  851.     link    a5,#L290
  852.     movem.l    d2-d4/a2/a3,-(a7)
  853.     move.l    $10(a5),d3
  854.     move.l    $C(a5),d4
  855.     move.l    $8(a5),a2
  856. L254
  857. ;   if (INSIDE_BEGIN_END(ctx)) 
  858.     move.l    a2,a0
  859.     add.l    #$E08A,a0
  860.     move.l    (a0),d0
  861.     cmp.l    #$1A00,d0
  862.     beq.b    L256
  863. L255
  864. ;      gl_error( ctx, GL_INVALID_OPERATION, "glAreTexturesResid
  865.     move.l    #L250,-(a7)
  866.     pea    $502.w
  867.     move.l    a2,-(a7)
  868.     jsr    _gl_error
  869.     add.w    #$C,a7
  870.     movem.l    (a7)+,d2-d4/a2/a3
  871.     unlk    a5
  872.     rts
  873. L256
  874. ;   switch (target)
  875.     move.l    d4,d0
  876.     cmp.l    #$DE1,d0
  877.     beq.b    L258
  878.     bgt.b    L291
  879.     cmp.l    #$DE0,d0
  880.     beq.b    L257
  881.     bra.b    L260
  882. L291
  883.     cmp.l    #$806F,d0
  884.     beq.b    L259
  885.     bra.b    L260
  886. ;      
  887. L257
  888. ;     oldTexObj = ctx->Texture.Current1D;
  889.     move.l    a2,a0
  890.     add.l    #$D73C,a0
  891.     lea    (a0),a0
  892.     move.l    $AC(a0),-4(a5)
  893. ;     targetPointer = &ctx->Texture.Current1D;
  894.     move.l    #$D7E8,d0
  895.     add.l    a2,d0
  896.     move.l    d0,-$C(a5)
  897. ;     targetDimensions = 1;
  898.     moveq    #1,d2
  899. ;     
  900.     bra.b    L261
  901. L258
  902. ;     oldTexObj = ctx->Texture.Current2D;
  903.     move.l    a2,a0
  904.     add.l    #$D73C,a0
  905.     lea    (a0),a0
  906.     move.l    $B0(a0),-4(a5)
  907. ;     targetPointer = &ctx->Texture.Current2D;
  908.     move.l    #$D7EC,d0
  909.     add.l    a2,d0
  910.     move.l    d0,-$C(a5)
  911. ;     targetDimensions = 2;
  912.     moveq    #2,d2
  913. ;     
  914.     bra.b    L261
  915. L259
  916. ;     oldTexObj = ctx->Texture.Current3D;
  917.     move.l    a2,a0
  918.     add.l    #$D73C,a0
  919.     lea    (a0),a0
  920.     move.l    $B4(a0),-4(a5)
  921. ;     targetPointer = &ctx->Texture.Current3D;
  922.     move.l    #$D7F0,d0
  923.     add.l    a2,d0
  924.     move.l    d0,-$C(a5)
  925. ;     targetDimensions = 3;
  926.     moveq    #3,d2
  927. ;     
  928.     bra.b    L261
  929. L260
  930. ;     gl_error( ctx, GL_INVALID_ENUM, "glBindTexture" );
  931.     move.l    #L251,-(a7)
  932.     pea    $500.w
  933.     move.l    a2,-(a7)
  934.     jsr    _gl_error
  935.     add.w    #$C,a7
  936.     movem.l    (a7)+,d2-d4/a2/a3
  937.     unlk    a5
  938.     rts
  939. L261
  940. ;     return;
  941. ;   if (texName==0) 
  942.     tst.l    d3
  943.     bne.b    L268
  944. L262
  945. ;      switch (target)
  946.     move.l    d4,d0
  947.     cmp.l    #$DE1,d0
  948.     beq.b    L264
  949.     bgt.b    L292
  950.     cmp.l    #$DE0,d0
  951.     beq.b    L263
  952.     bra.b    L266
  953. L292
  954.     cmp.l    #$806F,d0
  955.     beq.b    L265
  956.     bra.b    L266
  957. ;     
  958. L263
  959. ;        newTexObj = ctx->Shared->Default1D;
  960.     move.l    (a2),a0
  961.     move.l    $10(a0),a0
  962. ;        
  963.     bra.b    L267
  964. L264
  965. ;        newTexObj = ctx->Shared->Default2D;
  966.     move.l    (a2),a0
  967.     move.l    $14(a0),a0
  968. ;        
  969.     bra.b    L267
  970. L265
  971. ;        newTexObj = ctx->Shared->Default3D;
  972.     move.l    (a2),a0
  973.     move.l    $18(a0),a0
  974. ;        
  975.     bra.b    L267
  976. L266
  977. ;        gl_problem(ctx, "Bad target in gl_BindTexture");
  978.     move.l    #L252,-(a7)
  979.     move.l    a2,-(a7)
  980.     jsr    _gl_problem
  981.     addq.w    #$8,a7
  982.     movem.l    (a7)+,d2-d4/a2/a3
  983.     unlk    a5
  984.     rts
  985. L267
  986. ;        return;
  987.     bra.b    L273
  988. L268
  989. ;      newTexObj = (struct gl_texture_object *)
  990.     move.l    d3,-(a7)
  991.     move.l    (a2),a0
  992.     move.l    $8(a0),a0
  993.     move.l    a0,-(a7)
  994.     jsr    _HashLookup
  995.     addq.w    #$8,a7
  996.     move.l    d0,a0
  997. ;      if (newTexObj) 
  998.     cmp.w    #0,a0
  999.     beq.b    L272
  1000. L269
  1001. ;     if (newTexObj->Dimensions!=targetDimensions) 
  1002.     move.l    $8(a0),d0
  1003.     cmp.l    d2,d0
  1004.     beq.b    L271
  1005. L270
  1006. ;        gl_error( ctx, GL_INVALID_OPERATION, "glBindTextureEXT" );
  1007.     move.l    #L253,-(a7)
  1008.     pea    $502.w
  1009.     move.l    a2,-(a7)
  1010.     jsr    _gl_error
  1011.     add.w    #$C,a7
  1012.     movem.l    (a7)+,d2-d4/a2/a3
  1013.     unlk    a5
  1014.     rts
  1015. L271
  1016. ;        return;
  1017.     bra.b    L273
  1018. L272
  1019. ;     newTexObj = gl_alloc_texture_object(ctx->Shared, texName,
  1020.     move.l    d2,-(a7)
  1021.     move.l    d3,-(a7)
  1022.     move.l    (a2),a0
  1023.     move.l    a0,-(a7)
  1024.     jsr    _gl_alloc_texture_object
  1025.     add.w    #$C,a7
  1026.     move.l    d0,a0
  1027. L273
  1028. ;   *targetPointer = newTexObj;
  1029.     move.l    -$C(a5),a1
  1030.     move.l    a0,(a1)
  1031. ;   if (*targetPointer != oldTexObj && oldTexObj->Name>0) 
  1032.     move.l    -$C(a5),a3
  1033.     move.l    (a3),a1
  1034.     cmp.l    -4(a5),a1
  1035.     beq.b    L276
  1036. L274
  1037.     move.l    -4(a5),a1
  1038.     move.l    4(a1),d0
  1039.     beq.b    L276
  1040. L275
  1041. ;      oldTexObj->RefCount--;
  1042.     move.l    -4(a5),a1
  1043.     move.l    (a1),d0
  1044.     subq.l    #1,d0
  1045.     move.l    -4(a5),a1
  1046.     move.l    d0,(a1)
  1047. L276
  1048. ;   if (newTexObj->Name>0) 
  1049.     move.l    4(a0),d0
  1050.     beq.b    L278
  1051. L277
  1052. ;      newTexObj->RefCount++;
  1053.     move.l    (a0),d0
  1054.     addq.l    #1,d0
  1055.     move.l    d0,(a0)
  1056. L278
  1057. ;   if (   oldTexObj->WrapS != newTexObj->WrapS
  1058.     move.l    -4(a5),a1
  1059.     move.l    $20(a1),d1
  1060.     move.l    $20(a0),d0
  1061.     cmp.l    d0,d1
  1062.     bne.b    L284
  1063. L279
  1064.     move.l    -4(a5),a1
  1065.     move.l    $24(a1),d1
  1066.     move.l    $24(a0),d0
  1067.     cmp.l    d0,d1
  1068.     bne.b    L284
  1069. L280
  1070.     move.l    -4(a5),a1
  1071.     move.l    $28(a1),d1
  1072.     move.l    $28(a0),d0
  1073.     cmp.l    d0,d1
  1074.     bne.b    L284
  1075. L281
  1076.     move.l    -4(a5),a1
  1077.     move.l    $2C(a1),d1
  1078.     move.l    $2C(a0),d0
  1079.     cmp.l    d0,d1
  1080.     bne.b    L284
  1081. L282
  1082.     move.l    -4(a5),a1
  1083.     move.l    $30(a1),d1
  1084.     move.l    $30(a0),d0
  1085.     cmp.l    d0,d1
  1086.     bne.b    L284
  1087. L283
  1088.     move.b    $476(a0),d0
  1089.     bne.b    L285
  1090. L284
  1091. ;      ctx->NewState |= NEW_RASTER_OPS;
  1092.     move.l    a2,a1
  1093.     add.l    #$E082,a1
  1094.     move.l    (a1),d0
  1095.     or.l    #2,d0
  1096.     move.l    a2,a1
  1097.     add.l    #$E082,a1
  1098.     move.l    d0,(a1)
  1099. L285
  1100. ;   if (oldTexObj==ctx->Texture.Current) 
  1101.     move.l    a2,a1
  1102.     add.l    #$D73C,a1
  1103.     lea    (a1),a1
  1104.     move.l    $B8(a1),a1
  1105.     move.l    -4(a5),a3
  1106.     cmp.l    a1,a3
  1107.     bne.b    L287
  1108. L286
  1109. ;      ctx->Texture.Current = newTexObj;
  1110.     move.l    a2,a1
  1111.     add.l    #$D7F4,a1
  1112.     move.l    a0,(a1)
  1113. L287
  1114. ;   if (ctx->Driver.BindTexture) 
  1115.     lea    $8A0(a2),a1
  1116.     move.l    $C4(a1),a1
  1117.     cmp.w    #0,a1
  1118.     beq.b    L289
  1119. L288
  1120. ;      (*ctx->Driver.BindTexture)( ctx, target, newTexObj );
  1121.     move.l    a0,-(a7)
  1122.     move.l    d4,-(a7)
  1123.     move.l    a2,-(a7)
  1124.     lea    $8A0(a2),a0
  1125.     move.l    $C4(a0),a0
  1126.     jsr    (a0)
  1127.     add.w    #$C,a7
  1128. L289
  1129.     movem.l    (a7)+,d2-d4/a2/a3
  1130.     unlk    a5
  1131.     rts
  1132.  
  1133. L252
  1134.     dc.b    'Bad target in gl_BindTexture',0
  1135. L250
  1136.     dc.b    'glAreTexturesResident',0
  1137. L251
  1138.     dc.b    'glBindTexture',0
  1139. L253
  1140.     dc.b    'glBindTextureEXT',0
  1141.  
  1142.     SECTION "_gl_PrioritizeTextures:0",CODE
  1143.  
  1144.  
  1145. ;void gl_PrioritizeTextures( GLcontext *ctx,
  1146.     XDEF    _gl_PrioritizeTextures
  1147. _gl_PrioritizeTextures
  1148. L312    EQU    -$10
  1149.     link    a5,#L312
  1150.     movem.l    d2/d3/a2,-(a7)
  1151.     move.l    $C(a5),d3
  1152.     move.l    $14(a5),a2
  1153. L295
  1154. ;   if (INSIDE_BEGIN_END(ctx)) 
  1155.     move.l    $8(a5),a0
  1156.     add.l    #$E08A,a0
  1157.     move.l    (a0),d0
  1158.     cmp.l    #$1A00,d0
  1159.     beq.b    L297
  1160. L296
  1161. ;      gl_error( ctx, GL_INVALID_OPERATION, "glAreTexturesResid
  1162.     move.l    #L293,-(a7)
  1163.     pea    $502.w
  1164.     move.l    $8(a5),-(a7)
  1165.     jsr    _gl_error
  1166.     add.w    #$C,a7
  1167.     movem.l    (a7)+,d2/d3/a2
  1168.     unlk    a5
  1169.     rts
  1170. L297
  1171. ;   if (n<0) 
  1172.     tst.l    d3
  1173.     bpl.b    L299
  1174. L298
  1175. ;      gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(
  1176.     move.l    #L294,-(a7)
  1177.     pea    $501.w
  1178.     move.l    $8(a5),-(a7)
  1179.     jsr    _gl_error
  1180.     add.w    #$C,a7
  1181.     movem.l    (a7)+,d2/d3/a2
  1182.     unlk    a5
  1183.     rts
  1184. L299
  1185. ;   for (i=0;
  1186.     moveq    #0,d2
  1187.     bra    L310
  1188. L300
  1189. ;      if (texName[i]>0) 
  1190.     move.l    $10(a5),a1
  1191.     lea    0(a1,d2.l*4),a0
  1192.     move.l    (a0),d0
  1193.     beq.b    L309
  1194. L301
  1195. ;     t = (struct gl_texture_object *)
  1196.     move.l    $10(a5),a1
  1197.     lea    0(a1,d2.l*4),a0
  1198.     move.l    (a0),d0
  1199.     move.l    d0,-(a7)
  1200.     move.l    $8(a5),a1
  1201.     move.l    (a1),a0
  1202.     move.l    $8(a0),a0
  1203.     move.l    a0,-(a7)
  1204.     jsr    _HashLookup
  1205.     addq.w    #$8,a7
  1206.     move.l    d0,a0
  1207. ;     if (t) 
  1208.     cmp.w    #0,a0
  1209.     beq.b    L309
  1210. L302
  1211. ;        t->Priority = CLAMP( priorities[i], 0.0F, 1.0F );
  1212.     lea    0(a2,d2.l*4),a1
  1213.     fmove.s    (a1),fp0
  1214.     fcmp.s    #$.00000000,fp0
  1215.     fboge.b    L304
  1216. L303
  1217.     fmove.s    #$.00000000,fp0
  1218.     bra.b    L308
  1219. L304
  1220.     lea    0(a2,d2.l*4),a1
  1221.     fmove.s    (a1),fp0
  1222.     fcmp.s    #$.3F800000,fp0
  1223.     fbole.b    L306
  1224. L305
  1225.     fmove.s    #$.3F800000,fp0
  1226.     bra.b    L307
  1227. L306
  1228.     lea    0(a2,d2.l*4),a1
  1229.     fmove.s    (a1),fp0
  1230. L307
  1231. L308
  1232.     fmove.s    fp0,$C(a0)
  1233. L309
  1234.     addq.l    #1,d2
  1235. L310
  1236.     cmp.l    d3,d2
  1237.     blo    L300
  1238. L311
  1239.     movem.l    (a7)+,d2/d3/a2
  1240.     unlk    a5
  1241.     rts
  1242.  
  1243. L293
  1244.     dc.b    'glAreTexturesResident',0
  1245. L294
  1246.     dc.b    'glAreTexturesResident(n)',0
  1247.  
  1248.     SECTION "_gl_AreTexturesResident:0",CODE
  1249.  
  1250.  
  1251. ;GLboolean gl_AreTexturesResident( GLcontext *ctx, GLsizei n,
  1252.     XDEF    _gl_AreTexturesResident
  1253. _gl_AreTexturesResident
  1254. L329    EQU    -$A
  1255.     link    a5,#L329
  1256.     movem.l    d2-d4/a2,-(a7)
  1257.     move.l    $C(a5),d3
  1258.     move.l    $8(a5),a2
  1259. L316
  1260. ;   GLboolean resident = GL_TRUE;
  1261.     moveq    #1,d4
  1262. ;   if (INSIDE_BEGIN_END(ctx)) 
  1263.     move.l    a2,a0
  1264.     add.l    #$E08A,a0
  1265.     move.l    (a0),d0
  1266.     cmp.l    #$1A00,d0
  1267.     beq.b    L318
  1268. L317
  1269. ;      gl_error( ctx, GL_INVALID_OPERATION, "glAreTexturesResid
  1270.     move.l    #L313,-(a7)
  1271.     pea    $502.w
  1272.     move.l    a2,-(a7)
  1273.     jsr    _gl_error
  1274.     add.w    #$C,a7
  1275.     moveq    #0,d0
  1276.     movem.l    (a7)+,d2-d4/a2
  1277.     unlk    a5
  1278.     rts
  1279. L318
  1280. ;   if (n<0) 
  1281.     tst.l    d3
  1282.     bpl.b    L320
  1283. L319
  1284. ;      gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(
  1285.     move.l    #L314,-(a7)
  1286.     pea    $501.w
  1287.     move.l    a2,-(a7)
  1288.     jsr    _gl_error
  1289.     add.w    #$C,a7
  1290.     moveq    #0,d0
  1291.     movem.l    (a7)+,d2-d4/a2
  1292.     unlk    a5
  1293.     rts
  1294. L320
  1295. ;   for (i=0;
  1296.     moveq    #0,d2
  1297.     bra    L327
  1298. L321
  1299. ;      if (texName[i]==0) 
  1300.     move.l    $10(a5),a1
  1301.     lea    0(a1,d2.l*4),a0
  1302.     move.l    (a0),d0
  1303.     bne.b    L323
  1304. L322
  1305. ;     gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)
  1306.     move.l    #L315,-(a7)
  1307.     pea    $501.w
  1308.     move.l    a2,-(a7)
  1309.     jsr    _gl_error
  1310.     add.w    #$C,a7
  1311.     moveq    #0,d0
  1312.     movem.l    (a7)+,d2-d4/a2
  1313.     unlk    a5
  1314.     rts
  1315. L323
  1316. ;      t = (struct gl_texture_object *)
  1317.     move.l    $10(a5),a1
  1318.     lea    0(a1,d2.l*4),a0
  1319.     move.l    (a0),d0
  1320.     move.l    d0,-(a7)
  1321.     move.l    (a2),a0
  1322.     move.l    $8(a0),a0
  1323.     move.l    a0,-(a7)
  1324.     jsr    _HashLookup
  1325.     addq.w    #$8,a7
  1326.     move.l    d0,a0
  1327. ;      if (t) 
  1328.     cmp.w    #0,a0
  1329.     beq.b    L325
  1330. L324
  1331. ;     residences[i] = GL_TRUE;
  1332.     move.l    $14(a5),a1
  1333.     lea    0(a1,d2.l),a0
  1334.     move.b    #1,(a0)
  1335.     bra.b    L326
  1336. L325
  1337. ;     gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)
  1338.     move.l    #L315,-(a7)
  1339.     pea    $501.w
  1340.     move.l    a2,-(a7)
  1341.     jsr    _gl_error
  1342.     add.w    #$C,a7
  1343.     moveq    #0,d0
  1344.     movem.l    (a7)+,d2-d4/a2
  1345.     unlk    a5
  1346.     rts
  1347. L326
  1348.     addq.l    #1,d2
  1349. L327
  1350.     cmp.l    d3,d2
  1351.     blo    L321
  1352. L328
  1353. ;     return 
  1354.     move.b    d4,d0
  1355.     movem.l    (a7)+,d2-d4/a2
  1356.     unlk    a5
  1357.     rts
  1358.  
  1359. L313
  1360.     dc.b    'glAreTexturesResident',0
  1361. L314
  1362.     dc.b    'glAreTexturesResident(n)',0
  1363. L315
  1364.     dc.b    'glAreTexturesResident(textures)',0
  1365.  
  1366.     SECTION "_gl_IsTexture:0",CODE
  1367.  
  1368.  
  1369. ;GLboolean gl_IsTexture( GLcontext *ctx, GLuint texture )
  1370.     XDEF    _gl_IsTexture
  1371. _gl_IsTexture
  1372.     move.l    $8(a7),d0
  1373.     move.l    4(a7),a0
  1374. L331
  1375. ;   if (INSIDE_BEGIN_END(ctx)) 
  1376.     move.l    a0,a1
  1377.     add.l    #$E08A,a1
  1378.     move.l    (a1),d1
  1379.     cmp.l    #$1A00,d1
  1380.     beq.b    L333
  1381. L332
  1382. ;      gl_error( ctx, GL_INVALID_OPERATION, "glIsTextures" );
  1383.     move.l    #L330,-(a7)
  1384.     pea    $502.w
  1385.     move.l    a0,-(a7)
  1386.     jsr    _gl_error
  1387.     add.w    #$C,a7
  1388.     moveq    #0,d0
  1389.     rts
  1390. L333
  1391. ;   if (texture>0 && HashLookup(ctx->Shared->TexObjects, texture))
  1392.     tst.l    d0
  1393.     beq.b    L336
  1394. L334
  1395.     move.l    d0,-(a7)
  1396.     move.l    (a0),a0
  1397.     move.l    $8(a0),a0
  1398.     move.l    a0,-(a7)
  1399.     jsr    _HashLookup
  1400.     addq.w    #$8,a7
  1401.     tst.l    d0
  1402.     beq.b    L336
  1403. L335
  1404.     moveq    #1,d0
  1405.     rts
  1406. L336
  1407.     moveq    #0,d0
  1408.     rts
  1409.  
  1410. L330
  1411.     dc.b    'glIsTextures',0
  1412.  
  1413.     END
  1414.