
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/context.c
	mc68030
	mc68881
	XREF	_gl_set_color_function
	XREF	_gl_set_vertex_function
	XREF	_gl_alloc_vb
	XREF	_gl_update_texture_state
	XREF	_gl_free_texture_object
	XREF	_gl_alloc_texture_object
	XREF	_gl_free_texture_image
	XREF	_gl_alloc_texture_image
	XREF	_gl_set_triangle_function
	XREF	_gl_alloc_stencil_buffer
	XREF	_gl_set_quad_function
	XREF	_gl_init_api_function_pointers
	XREF	_gl_set_point_function
	XREF	_gl_alloc_pb
	XREF	_gl_init_math
	XREF	_gl_destroy_list
	XREF	_gl_init_lists
	XREF	_gl_set_line_function
	XREF	_gl_update_lighting
	XREF	_gl_compute_material_shine_table
	XREF	_gl_compute_spot_exp_table
	XREF	_gl_material_bitmask
	XREF	_HashFirstEntry
	XREF	_DeleteHashTable
	XREF	_NewHashTable
	XREF	_gl_init_eval
	XREF	_gl_alloc_depth_buffer
	XREF	_gl_read_depth_span_int
	XREF	_gl_read_depth_span_float
	XREF	_gl_depth_test_pixels_greater
	XREF	_gl_depth_test_pixels_less
	XREF	_gl_depth_test_pixels_generic
	XREF	_gl_depth_test_span_greater
	XREF	_gl_depth_test_span_less
	XREF	_gl_depth_test_span_generic
	XREF	_gl_clip_interp_color
	XREF	_gl_clip_interp_tex
	XREF	_gl_clip_interp_color_tex
	XREF	_gl_clip_interp_all
	XREF	_gl_alloc_alpha_buffers
	XREF	_gl_alloc_accum_buffer
	XREF	_q_memset
	XREF	_q_memcpy
	XREF	_strcpy
	XREF	_getenv
	XREF	_malloc
	XREF	_free
	XREF	_calloc
	XREF	_fprintf
	XREF	_std__in
	XREF	_std__out
	XREF	_std__err

	SECTION "_CC:1",DATA

	XDEF	_CC
_CC
	dc.l	0

	SECTION "_alloc_shared_state:0",CODE

	rts

;static struct gl_shared_state *alloc_shared_state( void )
_alloc_shared_state
	movem.l	d2/d3/a2,-(a7)
L267
;   ss = (struct gl_shared_state*) calloc( 1, sizeof(struct gl_sha
	pea	$28.w
	pea	1.w
	jsr	_calloc
	addq.w	#$8,a7
	move.l	d0,a2
;   if (!ss)
	cmp.w	#0,a2
	bne.b	L269
L268
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L269
;   ss->DisplayList = NewHashTable();
	jsr	_NewHashTable
	move.l	d0,4(a2)
;   ss->TexObjects = NewHashTable();
	jsr	_NewHashTable
	move.l	d0,$8(a2)
;   outOfMemory = GL_FALSE;
	moveq	#0,d3
;   for (i=0;
	moveq	#0,d2
	bra.b	L275
L270
;      ss->Default1D[i] = gl_alloc_texture_object(ss, 0, 1);
	pea	1.w
	clr.l	-(a7)
	move.l	a2,-(a7)
	jsr	_gl_alloc_texture_object
	add.w	#$C,a7
	lea	$10(a2),a0
	move.l	d0,0(a0,d2.l*4)
;      ss->Default2D[i] = gl_alloc_texture_object(ss, 0, 2);
	pea	2.w
	clr.l	-(a7)
	move.l	a2,-(a7)
	jsr	_gl_alloc_texture_object
	add.w	#$C,a7
	lea	$18(a2),a0
	move.l	d0,0(a0,d2.l*4)
;      ss->Default3D[i] = gl_alloc_texture_object(ss, 0, 3);
	pea	3.w
	clr.l	-(a7)
	move.l	a2,-(a7)
	jsr	_gl_alloc_texture_object
	add.w	#$C,a7
	lea	$20(a2),a0
	move.l	d0,0(a0,d2.l*4)
;      if (!ss->Default1D[i] || !ss->Default2D[i] || !ss->Defau
	lea	$10(a2),a0
	tst.l	0(a0,d2.l*4)
	beq.b	L273
L271
	lea	$18(a2),a0
	tst.l	0(a0,d2.l*4)
	beq.b	L273
L272
	lea	$20(a2),a0
	tst.l	0(a0,d2.l*4)
	bne.b	L274
L273
;         outOfMemory = GL_TRUE;
	moveq	#1,d3
;         
	bra.b	L276
L274
	addq.l	#1,d2
L275
	cmp.l	#2,d2
	blo.b	L270
L276
;   if (!ss->DisplayList || !ss->TexObjects || outOfMemory) 
	tst.l	4(a2)
	beq.b	L279
L277
	tst.l	$8(a2)
	beq.b	L279
L278
	tst.b	d3
	beq	L293
L279
;      if (!ss->DisplayList)
	tst.l	4(a2)
	bne.b	L281
L280
;         DeleteHashTable(ss->DisplayList);
	move.l	4(a2),-(a7)
	jsr	_DeleteHashTable
	addq.w	#4,a7
L281
;      if (!ss->TexObjects)
	tst.l	$8(a2)
	bne.b	L283
L282
;         DeleteHashTable(ss->TexObjects);
	move.l	$8(a2),-(a7)
	jsr	_DeleteHashTable
	addq.w	#4,a7
L283
;      for (i=0;
	moveq	#0,d2
	bra.b	L291
L284
;         if (!ss->Default1D[i])
	lea	$10(a2),a0
	tst.l	0(a0,d2.l*4)
	bne.b	L286
L285
;            gl_free_texture_object(ss, ss->Default1D[i]);
	lea	$10(a2),a0
	move.l	0(a0,d2.l*4),-(a7)
	move.l	a2,-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
L286
;         if (!ss->Default2D[i])
	lea	$18(a2),a0
	tst.l	0(a0,d2.l*4)
	bne.b	L288
L287
;            gl_free_texture_object(ss, ss->Default2D[i]);
	lea	$18(a2),a0
	move.l	0(a0,d2.l*4),-(a7)
	move.l	a2,-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
L288
;   s->GenModeR = GL_EYE_LINEAR;
	lea	$20(a2),a0
	tst.l	0(a0,d2.l*4)
	bne.b	L290
L289
;            gl_free_texture_object(ss, ss->Default3D[i]);
	lea	$20(a2),a0
	move.l	0(a0,d2.l*4),-(a7)
	move.l	a2,-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
L290
	addq.l	#1,d2
L291
	cmp.l	#2,d2
	blo.b	L284
L292
;      free(ss);
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L293
	move.l	a2,d0
	movem.l	(a7)+,d2/d3/a2
	rts

	SECTION "_free_shared_state:0",CODE


;static void free_shared_state( GLcontext *ctx, struct gl_shared_stat
_free_shared_state
	movem.l	a2/a3,-(a7)
	move.l	$10(a7),a2
	move.l	$C(a7),a3
L294
;   while (1) 
	bra.b	L298
L295
;      GLuint list = HashFirstEntry(ss->DisplayList);
	move.l	4(a2),-(a7)
	jsr	_HashFirstEntry
	addq.w	#4,a7
;      if (list) 
	tst.l	d0
	beq.b	L297
L296
;         gl_destroy_list(ctx, list);
	move.l	d0,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_destroy_list
	addq.w	#$8,a7
	bra.b	L298
L297
;         
	bra.b	L299
L298
	bra.b	L295
L299
;   DeleteHashTable(ss->DisplayList);
	move.l	4(a2),-(a7)
	jsr	_DeleteHashTable
	addq.w	#4,a7
;   while (ss->TexObjectList)
	bra.b	L301
L300
;      gl_free_texture_object(ss, ss->TexObjectList);
	move.l	$C(a2),-(a7)
	move.l	a2,-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
L301
	tst.l	$C(a2)
	bne.b	L300
L302
;   DeleteHashTable(ss->TexObjects);
	move.l	$8(a2),-(a7)
	jsr	_DeleteHashTable
	addq.w	#4,a7
;   free(ss);
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	movem.l	(a7)+,a2/a3
	rts

	SECTION "_init_light:0",CODE


;static void init_light( struct gl_light *l, GLuint n )
_init_light
	move.l	a2,-(a7)
	move.l	$C(a7),d0
	move.l	$8(a7),a2
L303
;   ASSIGN_4V( l->Ambien
	clr.l	(a2)
;   ASSIGN_4V( l->Ambien
	clr.l	4(a2)
;   ASSIGN_4V( l->Ambien
	clr.l	$8(a2)
;   ASSIGN_4V( l->Ambien
	move.l	#$3F800000,$C(a2)
;   if (n==0) 
	tst.l	d0
	bne.b	L305
L304
;      ASSIGN_4V( l->
	move.l	#$3F800000,$10(a2)
;      ASSIGN_4V( l->
	lea	$10(a2),a0
	move.l	#$3F800000,4(a0)
;      ASSIGN_4V( l->
	lea	$10(a2),a0
	move.l	#$3F800000,$8(a0)
;      ASSIGN_4V( l->
	lea	$10(a2),a0
	move.l	#$3F800000,$C(a0)
;      ASSIGN_4V( l-
	move.l	#$3F800000,$20(a2)
;      ASSIGN_4V( l-
	lea	$20(a2),a0
	move.l	#$3F800000,4(a0)
;      ASSIGN_4V( l-
	lea	$20(a2),a0
	move.l	#$3F800000,$8(a0)
;      ASSIGN_4V( l-
	lea	$20(a2),a0
	move.l	#$3F800000,$C(a0)
	bra.b	L306
L305
;      ASSIGN_4V( l->
	clr.l	$10(a2)
;      ASSIGN_4V( l->
	lea	$10(a2),a0
	clr.l	4(a0)
;      ASSIGN_4V( l->
	lea	$10(a2),a0
	clr.l	$8(a0)
;      ASSIGN_4V( l->
	lea	$10(a2),a0
	move.l	#$3F800000,$C(a0)
;      ASSIGN_4V( l-
	clr.l	$20(a2)
;      ASSIGN_4V( l-
	lea	$20(a2),a0
	clr.l	4(a0)
;      ASSIGN_4V( l-
	lea	$20(a2),a0
	clr.l	$8(a0)
;      ASSIGN_4V( l-
	lea	$20(a2),a0
	move.l	#$3F800000,$C(a0)
L306
;   ASSIGN_4V( l->Posit
	clr.l	$30(a2)
;   ASSIGN_4V( l->Posit
	lea	$30(a2),a0
	clr.l	4(a0)
;   ASSIGN_4V( l->Posit
	lea	$30(a2),a0
	move.l	#$3F800000,$8(a0)
;   ASSIGN_4V( l->Posit
	lea	$30(a2),a0
	clr.l	$C(a0)
;   ASSIGN_3V( l->Directio
	clr.l	$40(a2)
;   ASSIGN_3V( l->Directio
	lea	$40(a2),a0
	clr.l	4(a0)
;   ASSIGN_3V( l->Directio
	lea	$40(a2),a0
	move.l	#$BF800000,$8(a0)
;   l->SpotExponent = 0.0;
	clr.l	$50(a2)
;   gl_compute_spot_exp_table( l );
	move.l	a2,-(a7)
	jsr	_gl_compute_spot_exp_table
	addq.w	#4,a7
;   l->SpotCutoff = 180.0;
	move.l	#$43340000,$54(a2)
;   l->CosCutoff = -1.0;
	move.l	#$BF800000,$58(a2)
;   l->ConstantAttenuation = 1.0;
	move.l	#$3F800000,$5C(a2)
;   l->LinearAttenuation = 0.0;
	clr.l	$60(a2)
;   l->QuadraticAttenuation = 0.0;
	clr.l	$64(a2)
;   l->Enabled = GL_FALSE;
	clr.b	$68(a2)
	move.l	(a7)+,a2
	rts

	SECTION "_init_lightmodel:0",CODE


;static void init_lightmodel( struct gl_lightmodel *lm )
_init_lightmodel
	move.l	4(a7),a0
L307
;   ASSIGN_4V( lm->Ambi
	move.l	#$3E4CCCCC,(a0)
;   ASSIGN_4V( lm->Ambi
	move.l	#$3E4CCCCC,4(a0)
;   ASSIGN_4V( lm->Ambi
	move.l	#$3E4CCCCC,$8(a0)
;   ASSIGN_4V( lm->Ambi
	move.l	#$3F800000,$C(a0)
;   lm->LocalViewer = GL_FALSE;
	clr.b	$10(a0)
;   lm->TwoSide = GL_FALSE;
	clr.b	$11(a0)
;   lm->ColorControl = GL_SINGLE_COLOR;
	move.l	#$81F9,$12(a0)
	rts

	SECTION "_init_material:0",CODE


;static void init_material( struct gl_material *m )
_init_material
	move.l	4(a7),a0
L308
;   ASSIGN_4V( m->Ambie
	move.l	#$3E4CCCCC,(a0)
;   ASSIGN_4V( m->Ambie
	move.l	#$3E4CCCCC,4(a0)
;   ASSIGN_4V( m->Ambie
	move.l	#$3E4CCCCC,$8(a0)
;   ASSIGN_4V( m->Ambie
	move.l	#$3F800000,$C(a0)
;   ASSIGN_4V( m->Diffu
	move.l	#$3F4CCCCC,$10(a0)
;   ASSIGN_4V( m->Diffu
	lea	$10(a0),a1
	move.l	#$3F4CCCCC,4(a1)
;   ASSIGN_4V( m->Diffu
	lea	$10(a0),a1
	move.l	#$3F4CCCCC,$8(a1)
;   ASSIGN_4V( m->Diffu
	lea	$10(a0),a1
	move.l	#$3F800000,$C(a1)
;   ASSIGN_4V( m->Specu
	clr.l	$20(a0)
;   ASSIGN_4V( m->Specu
	lea	$20(a0),a1
	clr.l	4(a1)
;   ASSIGN_4V( m->Specu
	lea	$20(a0),a1
	clr.l	$8(a1)
;   ASSIGN_4V( m->Specu
	lea	$20(a0),a1
	move.l	#$3F800000,$C(a1)
;   ASSIGN_4V( m->Emiss
	clr.l	$30(a0)
;   ASSIGN_4V( m->Emiss
	lea	$30(a0),a1
	clr.l	4(a1)
;   ASSIGN_4V( m->Emiss
	lea	$30(a0),a1
	clr.l	$8(a1)
;   ASSIGN_4V( m->Emiss
	lea	$30(a0),a1
	move.l	#$3F800000,$C(a1)
;   m->Shininess = 0.0;
	clr.l	$40(a0)
;   m->AmbientIndex = 0;
	clr.l	$44(a0)
;   m->DiffuseIndex = 1;
	move.l	#$3F800000,$48(a0)
;   m->SpecularIndex = 1;
	move.l	#$3F800000,$4C(a0)
;   gl_compute_material_shine_table( m );
	move.l	a0,-(a7)
	jsr	_gl_compute_material_shine_table
	addq.w	#4,a7
	rts

	SECTION "_init_texture_set:0",CODE


;static void init_texture_set( GLcontext *ctx, GLuint setNum )
_init_texture_set
	move.l	a2,-(a7)
	move.l	$C(a7),d0
	move.l	$8(a7),a1
L309
;   struct gl_texture_set *s = &ctx->Texture.Set[setNum];
	move.l	a1,a0
	add.l	#$DEC6,a0
	move.l	d0,d1
	muls.l	#$BC,d1
	add.l	d1,a0
;   s->EnvMode = GL_MODULATE;
	move.l	#$2100,(a0)
;   ASSIGN_4V( s->EnvCo
	clr.l	4(a0)
;   ASSIGN_4V( s->EnvCo
	lea	4(a0),a2
	clr.l	4(a2)
;   ASSIGN_4V( s->EnvCo
	lea	4(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->EnvCo
	lea	4(a0),a2
	clr.l	$C(a2)
;   s->TexGenEnabled = 0;
	clr.l	$14(a0)
;   s->GenModeS = GL_EYE_LINEAR;
	move.l	#$2400,$18(a0)
;   s->GenModeT = GL_EYE_LINEAR;
	move.l	#$2400,$1C(a0)
;   s->GenModeR = GL_EYE_LINEAR;
	move.l	#$2400,$20(a0)
;   s->GenModeQ = GL_EYE_LINEAR;
	move.l	#$2400,$24(a0)
;   ASSIGN_4V( s->O
	move.l	#$3F800000,$28(a0)
;   ASSIGN_4V( s->O
	lea	$28(a0),a2
	clr.l	4(a2)
;   ASSIGN_4V( s->O
	lea	$28(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->O
	lea	$28(a0),a2
	clr.l	$C(a2)
;   ASSIGN_4V( s->O
	clr.l	$38(a0)
;   ASSIGN_4V( s->O
	lea	$38(a0),a2
	move.l	#$3F800000,4(a2)
;   ASSIGN_4V( s->O
	lea	$38(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->O
	lea	$38(a0),a2
	clr.l	$C(a2)
;   ASSIGN_4V( s->O
	clr.l	$48(a0)
;   ASSIGN_4V( s->O
	lea	$48(a0),a2
	clr.l	4(a2)
;   ASSIGN_4V( s->O
	lea	$48(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->O
	lea	$48(a0),a2
	clr.l	$C(a2)
;   ASSIGN_4V( s->O
	clr.l	$58(a0)
;   ASSIGN_4V( s->O
	lea	$58(a0),a2
	clr.l	4(a2)
;   ASSIGN_4V( s->O
	lea	$58(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->O
	lea	$58(a0),a2
	clr.l	$C(a2)
;   ASSIGN_4V( s->EyeP
	move.l	#$3F800000,$68(a0)
;   ASSIGN_4V( s->EyeP
	lea	$68(a0),a2
	clr.l	4(a2)
;   ASSIGN_4V( s->EyeP
	lea	$68(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->EyeP
	lea	$68(a0),a2
	clr.l	$C(a2)
;   ASSIGN_4V( s->EyeP
	clr.l	$78(a0)
;   ASSIGN_4V( s->EyeP
	lea	$78(a0),a2
	move.l	#$3F800000,4(a2)
;   ASSIGN_4V( s->EyeP
	lea	$78(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->EyeP
	lea	$78(a0),a2
	clr.l	$C(a2)
;   ASSIGN_4V( s->EyeP
	clr.l	$88(a0)
;   ASSIGN_4V( s->EyeP
	lea	$88(a0),a2
	clr.l	4(a2)
;   ASSIGN_4V( s->EyeP
	lea	$88(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->EyeP
	lea	$88(a0),a2
	clr.l	$C(a2)
;   ASSIGN_4V( s->EyeP
	clr.l	$98(a0)
;   ASSIGN_4V( s->EyeP
	lea	$98(a0),a2
	clr.l	4(a2)
;   ASSIGN_4V( s->EyeP
	lea	$98(a0),a2
	clr.l	$8(a2)
;   ASSIGN_4V( s->EyeP
	lea	$98(a0),a2
	clr.l	$C(a2)
;   s->Current1D = ctx->Shared->Default1D[setNum];
	move.l	(a1),a2
	lea	$10(a2),a2
	move.l	0(a2,d0.l*4),$A8(a0)
;   s->Current2D = ctx->Shared->Default2D[setNum];
	move.l	(a1),a2
	lea	$18(a2),a2
	move.l	0(a2,d0.l*4),$AC(a0)
;   s->Current3D = ctx->Shared->Default3D[setNum];
	move.l	(a1),a1
	lea	$20(a1),a1
	move.l	0(a1,d0.l*4),$B0(a0)
;   s->TexCoordSet = setNum;
	move.l	d0,$B8(a0)
	move.l	(a7)+,a2
	rts

	SECTION "_init_1d_map:0",CODE


;static void init_1d_map( struct gl_1d_map *map, int n, const float *
_init_1d_map
	movem.l	d2/a2/a3,-(a7)
	movem.l	$14(a7),d2/a3
	move.l	$10(a7),a2
L310
;   map->Order = 1;
	move.l	#1,(a2)
;   map->u1 = 0.0;
	clr.l	4(a2)
;   map->u2 = 1.0;
	move.l	#$3F800000,$8(a2)
;   map->Points = malloc(n * sizeof(GLfloat));
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	d0,$C(a2)
;   if (map->Points) 
	tst.l	$C(a2)
	beq.b	L314
L311
;      for (i=0;
	moveq	#0,d0
	bra.b	L313
L312
;         map->Points[i] = initial[i];
	move.l	$C(a2),a0
	move.l	0(a3,d0.l*4),0(a0,d0.l*4)
	addq.l	#1,d0
L313
	cmp.l	d2,d0
	blt.b	L312
L314
;   map->Retain = GL_FALSE;
	clr.b	$10(a2)
	movem.l	(a7)+,d2/a2/a3
	rts

	SECTION "_init_2d_map:0",CODE


;static void init_2d_map( struct gl_2d_map *map, int n, const float *
_init_2d_map
	movem.l	d2/a2/a3,-(a7)
	movem.l	$14(a7),d2/a3
	move.l	$10(a7),a2
L315
;   map->Uorder = 1;
	move.l	#1,(a2)
;   map->Vorder = 1;
	move.l	#1,4(a2)
;   map->u1 = 0.0;
	clr.l	$8(a2)
;   map->u2 = 1.0;
	move.l	#$3F800000,$C(a2)
;   map->v1 = 0.0;
	clr.l	$10(a2)
;   map->v2 = 1.0;
	move.l	#$3F800000,$14(a2)
;   map->Points = malloc(n * sizeof(GLfloat));
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	d0,$18(a2)
;   if (map->Points) 
	tst.l	$18(a2)
	beq.b	L319
L316
;      for (i=0;
	moveq	#0,d0
	bra.b	L318
L317
;         map->Points[i] = initial[i];
	move.l	$18(a2),a0
	move.l	0(a3,d0.l*4),0(a0,d0.l*4)
	addq.l	#1,d0
L318
	cmp.l	d2,d0
	blt.b	L317
L319
;   map->Retain = GL_FALSE;
	clr.b	$1C(a2)
	movem.l	(a7)+,d2/a2/a3
	rts

	SECTION "_initialize_context:0",CODE


;static void initialize_context( GLcontext *ctx )
_initialize_context
	movem.l	d2/a2,-(a7)
	move.l	$C(a7),a2
L324
;   if (ctx) 
	cmp.w	#0,a2
	beq	L356
L325
;      ctx->NewModelViewMatrix = GL_FALSE;
	clr.b	$9F4(a2)
;      ctx->ModelViewMatrixType = MATRIX_IDENTITY;
	move.l	#1,$9F6(a2)
;ctx->ModelViewMat
	pea	$40.w
	pea	_identity___initialize_context(a6)
	pea	$9FA(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
;Y( ctx->ModelView
	pea	$40.w
	pea	_identity___initialize_context(a6)
	pea	$A3A(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
;      ctx->ModelViewStackDepth = 0;
	clr.l	$A7A(a2)
;      ctx->NewProjectionMatrix = GL_FALSE;
	clr.b	$127E(a2)
;      ctx->ProjectionMatrixType = MATRIX_IDENTITY;
	move.l	#1,$1280(a2)
;tx->ProjectionMat
	pea	$40.w
	pea	_identity___initialize_context(a6)
	pea	$1284(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
;      ctx->ProjectionStackDepth = 0;
	clr.l	$12C4(a2)
;      ctx->NearFarStack[0][0] = 1.0;
	move.l	#$3F800000,$1AC8(a2)
;      ctx->NearFarStack[0][1] = 0.0;
	lea	$1AC8(a2),a0
	clr.l	4(a0)
;      for (i=0;
	moveq	#0,d2
	bra.b	L327
L326
;         ctx->NewTextureMatrix = GL_FALSE;
	clr.b	$1BC8(a2)
;         ctx->TextureMatrixType[i] = MATRIX_IDENTITY;
	lea	$1BCA(a2),a0
	move.l	#1,0(a0,d2.l*4)
;tx->TextureMatrix
	pea	$40.w
	pea	_identity___initialize_context(a6)
	lea	$1BD2(a2),a0
	move.l	d2,d0
	asl.l	#6,d0
	pea	0(a0,d0.l)
	jsr	_q_memcpy
	add.w	#$C,a7
;         ctx->TextureStackDepth[i] = 0;
	lea	$1C52(a2),a0
	clr.l	0(a0,d2.l*4)
	addq.l	#1,d2
L327
	cmp.l	#2,d2
	blo.b	L326
L328
;SIGN_4V( ctx->Acc
	clr.l	$21B4(a2)
;SIGN_4V( ctx->Acc
	lea	$21B4(a2),a0
	clr.l	4(a0)
;SIGN_4V( ctx->Acc
	lea	$21B4(a2),a0
	clr.l	$8(a0)
;SIGN_4V( ctx->Acc
	lea	$21B4(a2),a0
	clr.l	$C(a0)
;      ctx->Color.IndexMask = 0xffffffff;
	move.l	#-1,$21D8(a2)
;      ctx->Color.ColorMask[0] = 0xff;
	move.b	#$FF,$21DC(a2)
;      ctx->Color.ColorMask[1] = 0xff;
	lea	$21DC(a2),a0
	move.b	#$FF,1(a0)
;      ctx->Color.ColorMask[2] = 0xff;
	lea	$21DC(a2),a0
	move.b	#$FF,2(a0)
;      ctx->Color.ColorMask[3] = 0xff;
	lea	$21DC(a2),a0
	move.b	#$FF,3(a0)
;      ctx->Color.SWmasking = GL_FALSE;
	clr.b	$21E0(a2)
;      ctx->Color.ClearIndex = 0;
	clr.l	$21C4(a2)
;SIGN_4V( ctx->Col
	clr.l	$21C8(a2)
;SIGN_4V( ctx->Col
	lea	$21C8(a2),a0
	clr.l	4(a0)
;SIGN_4V( ctx->Col
	lea	$21C8(a2),a0
	clr.l	$8(a0)
;SIGN_4V( ctx->Col
	lea	$21C8(a2),a0
	clr.l	$C(a0)
;      ctx->Color.DrawBuffer = GL_FRONT;
	move.l	#$404,$21E2(a2)
;      ctx->Color.AlphaEnabled = GL_FALSE;
	clr.b	$21E6(a2)
;      ctx->Color.AlphaFunc = GL_ALWAYS;
	move.l	#$207,$21E8(a2)
;      ctx->Color.AlphaRef = 0;
	clr.b	$21EC(a2)
;      ctx->Color.BlendEnabled = GL_FALSE;
	clr.b	$21ED(a2)
;      ctx->Color.BlendSrc = GL_ONE;
	move.l	#1,$21EE(a2)
;      ctx->Color.BlendDst = GL_ZERO;
	clr.l	$21F2(a2)
;      ctx->Color.BlendEquation = GL_FUNC_ADD_EXT;
	move.l	#$8006,$21F6(a2)
;      ctx->Color.BlendFunc = NULL;
	clr.l	$220A(a2)
;SIGN_4V( ctx->Col
	clr.l	$21FA(a2)
;SIGN_4V( ctx->Col
	lea	$21FA(a2),a0
	clr.l	4(a0)
;SIGN_4V( ctx->Col
	lea	$21FA(a2),a0
	clr.l	$8(a0)
;SIGN_4V( ctx->Col
	lea	$21FA(a2),a0
	clr.l	$C(a0)
;      ctx->Color.IndexLogicOpEnabled = GL_FALSE;
	clr.b	$2212(a2)
;      ctx->Color.ColorLogicOpEnabled = GL_FALSE;
	clr.b	$2213(a2)
;      ctx->Color.SWLogicOpEnabled = GL_FALSE;
	clr.b	$2214(a2)
;      ctx->Color.LogicOp = GL_COPY;
	move.l	#$1503,$220E(a2)
;      ctx->Color.DitherFlag = GL_TRUE;
	move.b	#1,$2215(a2)
;IGN_4V( ctx->Curr
	move.b	#$FF,$2216(a2)
;IGN_4V( ctx->Curr
	lea	$2216(a2),a0
	move.b	#$FF,1(a0)
;IGN_4V( ctx->Curr
	lea	$2216(a2),a0
	move.b	#$FF,2(a0)
;IGN_4V( ctx->Curr
	lea	$2216(a2),a0
	move.b	#$FF,3(a0)
;      ctx->Current.Index = 1;
	move.l	#1,$221A(a2)
;     ASSIGN_3V( c
	clr.l	$221E(a2)
;     ASSIGN_3V( c
	lea	$221E(a2),a0
	clr.l	4(a0)
;     ASSIGN_3V( c
	lea	$221E(a2),a0
	move.l	#$3F800000,$8(a0)
;      for (i=0;
	moveq	#0,d2
	bra.b	L330
L329
; ctx->Current.Mul
	lea	$222E(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	clr.l	0(a0,d0.l)
; ctx->Current.Mul
	lea	$222E(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	clr.l	4(a0)
; ctx->Current.Mul
	lea	$222E(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	clr.l	$8(a0)
; ctx->Current.Mul
	lea	$222E(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	move.l	#$3F800000,$C(a0)
	addq.l	#1,d2
L330
	cmp.l	#2,d2
	blo.b	L329
L331
;      ctx->Current.TexCoord = ctx->Current.MultiTexCoord[0];
	lea	$222E(a2),a0
	move.l	a0,$222A(a2)
;IGN_4V( ctx->Curr
	clr.l	$224E(a2)
;IGN_4V( ctx->Curr
	lea	$224E(a2),a0
	clr.l	4(a0)
;IGN_4V( ctx->Curr
	lea	$224E(a2),a0
	clr.l	$8(a0)
;IGN_4V( ctx->Curr
	lea	$224E(a2),a0
	move.l	#$3F800000,$C(a0)
;      ctx->Current.RasterDistance = 0.0;
	clr.l	$225E(a2)
;N_4V( ctx->Curren
	move.l	#$3F800000,$2262(a2)
;N_4V( ctx->Curren
	lea	$2262(a2),a0
	move.l	#$3F800000,4(a0)
;N_4V( ctx->Curren
	lea	$2262(a2),a0
	move.l	#$3F800000,$8(a0)
;N_4V( ctx->Curren
	lea	$2262(a2),a0
	move.l	#$3F800000,$C(a0)
;      ctx->Current.RasterIndex = 1;
	move.l	#1,$2272(a2)
;      for (i=0;
	moveq	#0,d2
	bra.b	L333
L332
;Current.RasterMul
	lea	$227A(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	clr.l	0(a0,d0.l)
;Current.RasterMul
	lea	$227A(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	clr.l	4(a0)
;Current.RasterMul
	lea	$227A(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	clr.l	$8(a0)
;Current.RasterMul
	lea	$227A(a2),a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	move.l	#$3F800000,$C(a0)
	addq.l	#1,d2
L333
	cmp.l	#2,d2
	blo.b	L332
L334
;      ctx->Current.RasterTexCoord = ctx->Current.RasterMultiTe
	lea	$227A(a2),a0
	move.l	a0,$2276(a2)
;      ctx->Current.RasterPosValid = GL_TRUE;
	move.b	#1,$229A(a2)
;      ctx->Current.EdgeFlag = GL_TRUE;
	move.b	#1,$229B(a2)
;      ctx->Depth.Test = GL_FALSE;
	clr.b	$22A4(a2)
;      ctx->Depth.Clear = 1.0;
	move.l	#$3F800000,$22A0(a2)
;      ctx->Depth.Func = GL_LESS;
	move.l	#$201,$229C(a2)
;      ctx->Depth.Mask = GL_TRUE;
	move.b	#1,$22A5(a2)
;      ctx->Eval.Map1Color4 = GL_FALSE;
	clr.b	$22A6(a2)
;      ctx->Eval.Map1Index = GL_FALSE;
	clr.b	$22A7(a2)
;      ctx->Eval.Map1Normal = GL_FALSE;
	clr.b	$22A8(a2)
;      ctx->Eval.Map1TextureCoord1 = GL_FALSE;
	clr.b	$22A9(a2)
;      ctx->Eval.Map1TextureCoord2 = GL_FALSE;
	clr.b	$22AA(a2)
;      ctx->Eval.Map1TextureCoord3 = GL_FALSE;
	clr.b	$22AB(a2)
;      ctx->Eval.Map1TextureCoord4 = GL_FALSE;
	clr.b	$22AC(a2)
;      ctx->Eval.Map1Vertex3 = GL_FALSE;
	clr.b	$22AD(a2)
;      ctx->Eval.Map1Vertex4 = GL_FALSE;
	clr.b	$22AE(a2)
;      ctx->Eval.Map2Color4 = GL_FALSE;
	clr.b	$22AF(a2)
;      ctx->Eval.Map2Index = GL_FALSE;
	clr.b	$22B0(a2)
;      ctx->Eval.Map2Normal = GL_FALSE;
	clr.b	$22B1(a2)
;      ctx->Eval.Map2TextureCoord1 = GL_FALSE;
	clr.b	$22B2(a2)
;      ctx->Eval.Map2TextureCoord2 = GL_FALSE;
	clr.b	$22B3(a2)
;      ctx->Eval.Map2TextureCoord3 = GL_FALSE;
	clr.b	$22B4(a2)
;      ctx->Eval.Map2TextureCoord4 = GL_FALSE;
	clr.b	$22B5(a2)
;      ctx->Eval.Map2Vertex3 = GL_FALSE;
	clr.b	$22B6(a2)
;      ctx->Eval.Map2Vertex4 = GL_FALSE;
	clr.b	$22B7(a2)
;      ctx->Eval.AutoNormal = GL_FALSE;
	clr.b	$22B8(a2)
;      ctx->Eval.MapGrid1un = 1;
	move.l	#1,$22BA(a2)
;      ctx->Eval.MapGrid1u1 = 0.0;
	clr.l	$22BE(a2)
;      ctx->Eval.MapGrid1u2 = 1.0;
	move.l	#$3F800000,$22C2(a2)
;      ctx->Eval.MapGrid2un = 1;
	move.l	#1,$22C6(a2)
;      ctx->Eval.MapGrid2vn = 1;
	move.l	#1,$22CA(a2)
;      ctx->Eval.MapGrid2u1 = 0.0;
	clr.l	$22CE(a2)
;      ctx->Eval.MapGrid2u2 = 1.0;
	move.l	#$3F800000,$22D2(a2)
;      ctx->Eval.MapGrid2v1 = 0.0;
	clr.l	$22D6(a2)
;      ctx->Eval.MapGrid2v2 = 1.0;
	move.l	#$3F800000,$22DA(a2)
;         init_1d_map( &ctx->EvalMap.Map1Vertex3, 3, vertex )
	pea	_vertex___initialize_context(a6)
	pea	3.w
	move.l	a2,a0
	add.l	#$E678,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Vertex4, 4, vertex )
	pea	_vertex___initialize_context(a6)
	pea	4.w
	move.l	a2,a0
	add.l	#$E68A,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Index, 1, index );
	pea	_index___initialize_context(a6)
	pea	1.w
	move.l	a2,a0
	add.l	#$E69C,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Color4, 4, color );
	pea	_color___initialize_context(a6)
	pea	4.w
	move.l	a2,a0
	add.l	#$E6AE,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Normal, 3, normal );
	pea	_normal___initialize_context(a6)
	pea	3.w
	move.l	a2,a0
	add.l	#$E6C0,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Texture1, 1, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	1.w
	move.l	a2,a0
	add.l	#$E6D2,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Texture2, 2, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	2.w
	move.l	a2,a0
	add.l	#$E6E4,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Texture3, 3, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	3.w
	move.l	a2,a0
	add.l	#$E6F6,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_1d_map( &ctx->EvalMap.Map1Texture4, 4, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	4.w
	move.l	a2,a0
	add.l	#$E708,a0
	pea	(a0)
	jsr	_init_1d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Vertex3, 3, vertex )
	pea	_vertex___initialize_context(a6)
	pea	3.w
	move.l	a2,a0
	add.l	#$E71A,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Vertex4, 4, vertex )
	pea	_vertex___initialize_context(a6)
	pea	4.w
	move.l	a2,a0
	add.l	#$E738,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Index, 1, index );
	pea	_index___initialize_context(a6)
	pea	1.w
	move.l	a2,a0
	add.l	#$E756,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Color4, 4, color );
	pea	_color___initialize_context(a6)
	pea	4.w
	move.l	a2,a0
	add.l	#$E774,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Normal, 3, normal );
	pea	_normal___initialize_context(a6)
	pea	3.w
	move.l	a2,a0
	add.l	#$E792,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Texture1, 1, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	1.w
	move.l	a2,a0
	add.l	#$E7B0,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Texture2, 2, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	2.w
	move.l	a2,a0
	add.l	#$E7CE,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Texture3, 3, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	3.w
	move.l	a2,a0
	add.l	#$E7EC,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;         init_2d_map( &ctx->EvalMap.Map2Texture4, 4, texcoo
	pea	_texcoord___initialize_context(a6)
	pea	4.w
	move.l	a2,a0
	add.l	#$E80A,a0
	pea	(a0)
	jsr	_init_2d_map
	add.w	#$C,a7
;      ctx->Fog.Enabled = GL_FALSE;
	clr.b	$22DE(a2)
;      ctx->Fog.Mode = GL_EXP;
	move.l	#$800,$2300(a2)
;     ASSIGN_4V( c
	clr.l	$22E0(a2)
;     ASSIGN_4V( c
	lea	$22E0(a2),a0
	clr.l	4(a0)
;     ASSIGN_4V( c
	lea	$22E0(a2),a0
	clr.l	$8(a0)
;     ASSIGN_4V( c
	lea	$22E0(a2),a0
	clr.l	$C(a0)
;      ctx->Fog.Index = 0.0;
	clr.l	$22FC(a2)
;      ctx->Fog.Density = 1.0;
	move.l	#$3F800000,$22F0(a2)
;      ctx->Fog.Start = 0.0;
	clr.l	$22F4(a2)
;      ctx->Fog.End = 1.0;
	move.l	#$3F800000,$22F8(a2)
;      ctx->Hint.PerspectiveCorrection = GL_DONT_CARE;
	move.l	#$1100,$2304(a2)
;      ctx->Hint.PointSmooth = GL_DONT_CARE;
	move.l	#$1100,$2308(a2)
;      ctx->Hint.LineSmooth = GL_DONT_CARE;
	move.l	#$1100,$230C(a2)
;      ctx->Hint.PolygonSmooth = GL_DONT_CARE;
	move.l	#$1100,$2310(a2)
;      ctx->Hint.Fog = GL_DONT_CARE;
	move.l	#$1100,$2314(a2)
;      for (i=0;
	moveq	#0,d2
	bra.b	L336
L335
;	 init_light( &ctx->Light.Light[i], i );
	move.l	d2,-(a7)
	lea	$2318(a2),a0
	move.l	d2,d0
	muls.l	#$10E2,d0
	pea	0(a0,d0.l)
	jsr	_init_light
	addq.w	#$8,a7
	addq.l	#1,d2
L336
	cmp.l	#$8,d2
	blo.b	L335
L337
;      init_lightmodel( &ctx->Light.Model );
	move.l	a2,a0
	add.l	#$AA28,a0
	pea	(a0)
	jsr	_init_lightmodel
	addq.w	#4,a7
;      init_material( &ctx->Light.Material[0] );
	move.l	a2,a0
	add.l	#$AA3E,a0
	pea	(a0)
	jsr	_init_material
	addq.w	#4,a7
;      init_material( &ctx->Light.Material[1] );
	move.l	a2,a0
	add.l	#$AA3E,a0
	pea	$370(a0)
	jsr	_init_material
	addq.w	#4,a7
;      ctx->Light.ShadeModel = GL_SMOOTH;
	move.l	a2,a0
	add.l	#$B120,a0
	move.l	#$1D01,(a0)
;      ctx->Light.Enabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$B11E,a0
	clr.b	(a0)
;      ctx->Light.ColorMaterialFace = GL_FRONT_AND_BACK;
	move.l	a2,a0
	add.l	#$B124,a0
	move.l	#$408,(a0)
;      ctx->Light.ColorMaterialMode = GL_AMBIENT_AND_DIFFUSE;
	move.l	a2,a0
	add.l	#$B128,a0
	move.l	#$1602,(a0)
;      ctx->Light.ColorMaterialBitmask
	pea	$1602.w
	pea	$408.w
	jsr	_gl_material_bitmask
	addq.w	#$8,a7
	move.l	a2,a0
	add.l	#$B12C,a0
	move.l	d0,(a0)
;      ctx->Light.ColorMaterialEnabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$B130,a0
	clr.b	(a0)
;      ctx->Line.SmoothFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$B158,a0
	clr.b	(a0)
;      ctx->Line.StippleFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$B159,a0
	clr.b	(a0)
;      ctx->Line.Width = 1.0;
	move.l	a2,a0
	add.l	#$B160,a0
	move.l	#$3F800000,(a0)
;      ctx->Line.StipplePattern = 0xffff;
	move.l	a2,a0
	add.l	#$B15A,a0
	move.w	#$FFFF,(a0)
;      ctx->Line.StippleFactor = 1;
	move.l	a2,a0
	add.l	#$B15C,a0
	move.l	#1,(a0)
;      ctx->List.ListBase = 0;
	move.l	a2,a0
	add.l	#$B164,a0
	clr.l	(a0)
;      ctx->Pixel.RedBias = 0.0;
	move.l	a2,a0
	add.l	#$B16C,a0
	clr.l	(a0)
;      ctx->Pixel.RedScale = 1.0;
	move.l	a2,a0
	add.l	#$B170,a0
	move.l	#$3F800000,(a0)
;      ctx->Pixel.GreenBias = 0.0;
	move.l	a2,a0
	add.l	#$B174,a0
	clr.l	(a0)
;      ctx->Pixel.GreenScale = 1.0;
	move.l	a2,a0
	add.l	#$B178,a0
	move.l	#$3F800000,(a0)
;      ctx->Pixel.BlueBias = 0.0;
	move.l	a2,a0
	add.l	#$B17C,a0
	clr.l	(a0)
;      ctx->Pixel.BlueScale = 1.0;
	move.l	a2,a0
	add.l	#$B180,a0
	move.l	#$3F800000,(a0)
;      ctx->Pixel.AlphaBias = 0.0;
	move.l	a2,a0
	add.l	#$B184,a0
	clr.l	(a0)
;      ctx->Pixel.AlphaScale = 1.0;
	move.l	a2,a0
	add.l	#$B188,a0
	move.l	#$3F800000,(a0)
;      ctx->Pixel.ScaleOrBiasRGBA = GL_FALSE;
	move.l	a2,a0
	add.l	#$B18C,a0
	clr.b	(a0)
;      ctx->Pixel.DepthBias = 0.0;
	move.l	a2,a0
	add.l	#$B18E,a0
	clr.l	(a0)
;      ctx->Pixel.DepthScale = 1.0;
	move.l	a2,a0
	add.l	#$B192,a0
	move.l	#$3F800000,(a0)
;      ctx->Pixel.IndexOffset = 0;
	move.l	a2,a0
	add.l	#$B19A,a0
	clr.l	(a0)
;      ctx->Pixel.IndexShift = 0;
	move.l	a2,a0
	add.l	#$B196,a0
	clr.l	(a0)
;      ctx->Pixel.ZoomX = 1.0;
	move.l	a2,a0
	add.l	#$B1A0,a0
	move.l	#$3F800000,(a0)
;      ctx->Pixel.ZoomY = 1.0;
	move.l	a2,a0
	add.l	#$B1A4,a0
	move.l	#$3F800000,(a0)
;      ctx->Pixel.MapColorFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$B19E,a0
	clr.b	(a0)
;      ctx->Pixel.MapStencilFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$B19F,a0
	clr.b	(a0)
;      ctx->Pixel.MapStoSsize = 1;
	move.l	a2,a0
	add.l	#$B1A8,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapItoIsize = 1;
	move.l	a2,a0
	add.l	#$B1AC,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapItoRsize = 1;
	move.l	a2,a0
	add.l	#$B1B0,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapItoGsize = 1;
	move.l	a2,a0
	add.l	#$B1B4,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapItoBsize = 1;
	move.l	a2,a0
	add.l	#$B1B8,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapItoAsize = 1;
	move.l	a2,a0
	add.l	#$B1BC,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapRtoRsize = 1;
	move.l	a2,a0
	add.l	#$B1C0,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapGtoGsize = 1;
	move.l	a2,a0
	add.l	#$B1C4,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapBtoBsize = 1;
	move.l	a2,a0
	add.l	#$B1C8,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapAtoAsize = 1;
	move.l	a2,a0
	add.l	#$B1CC,a0
	move.l	#1,(a0)
;      ctx->Pixel.MapStoS[0] = 0;
	move.l	a2,a0
	add.l	#$B1D0,a0
	clr.l	(a0)
;      ctx->Pixel.MapItoI[0] = 0;
	move.l	a2,a0
	add.l	#$B5D0,a0
	clr.l	(a0)
;      ctx->Pixel.MapItoR[0] = 0.0;
	move.l	a2,a0
	add.l	#$B9D0,a0
	clr.l	(a0)
;      ctx->Pixel.MapItoG[0] = 0.0;
	move.l	a2,a0
	add.l	#$BDD0,a0
	clr.l	(a0)
;      ctx->Pixel.MapItoB[0] = 0.0;
	move.l	a2,a0
	add.l	#$C1D0,a0
	clr.l	(a0)
;      ctx->Pixel.MapItoA[0] = 0.0;
	move.l	a2,a0
	add.l	#$C5D0,a0
	clr.l	(a0)
;      ctx->Pixel.MapItoR8[0] = 0;
	move.l	a2,a0
	add.l	#$C9D0,a0
	clr.b	(a0)
;      ctx->Pixel.MapItoG8[0] = 0;
	move.l	a2,a0
	add.l	#$CAD0,a0
	clr.b	(a0)
;      ctx->Pixel.MapItoB8[0] = 0;
	move.l	a2,a0
	add.l	#$CBD0,a0
	clr.b	(a0)
;      ctx->Pixel.MapItoA8[0] = 0;
	move.l	a2,a0
	add.l	#$CCD0,a0
	clr.b	(a0)
;      ctx->Pixel.MapRtoR[0] = 0.0;
	move.l	a2,a0
	add.l	#$CDD0,a0
	clr.l	(a0)
;      ctx->Pixel.MapGtoG[0] = 0.0;
	move.l	a2,a0
	add.l	#$D1D0,a0
	clr.l	(a0)
;      ctx->Pixel.MapBtoB[0] = 0.0;
	move.l	a2,a0
	add.l	#$D5D0,a0
	clr.l	(a0)
;      ctx->Pixel.MapAtoA[0] = 0.0;
	move.l	a2,a0
	add.l	#$D9D0,a0
	clr.l	(a0)
;      ctx->Point.SmoothFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$DDD0,a0
	clr.b	(a0)
;      ctx->Point.Size = 1.0;
	move.l	a2,a0
	add.l	#$DDD2,a0
	move.l	#$3F800000,(a0)
;      ctx->Point.Params[0] = 1.0;
	move.l	a2,a0
	add.l	#$DDD6,a0
	move.l	#$3F800000,(a0)
;      ctx->Point.Params[1] = 0.0;
	move.l	a2,a0
	add.l	#$DDD6,a0
	clr.l	4(a0)
;      ctx->Point.Params[2] = 0.0;
	move.l	a2,a0
	add.l	#$DDD6,a0
	clr.l	$8(a0)
;      ctx->Point.MinSize = 0.0;
	move.l	a2,a0
	add.l	#$DDE2,a0
	clr.l	(a0)
;      ctx->Point.MaxSize = (GLfloat) MAX_POINT_SIZE;
	move.l	a2,a0
	add.l	#$DDE6,a0
	move.l	#$41200000,(a0)
;      ctx->Point.Threshold = 1.0;
	move.l	a2,a0
	add.l	#$DDEA,a0
	move.l	#$3F800000,(a0)
;      ctx->Polygon.CullFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$DDFB,a0
	clr.b	(a0)
;      ctx->Polygon.CullFaceMode = GL_BACK;
	move.l	a2,a0
	add.l	#$DDFC,a0
	move.l	#$405,(a0)
;      ctx->Polygon.FrontFace = GL_CCW;
	move.l	a2,a0
	add.l	#$DDEE,a0
	move.l	#$901,(a0)
;      ctx->Polygon.FrontMode = GL_FILL;
	move.l	a2,a0
	add.l	#$DDF2,a0
	move.l	#$1B02,(a0)
;      ctx->Polygon.BackMode = GL_FILL;
	move.l	a2,a0
	add.l	#$DDF6,a0
	move.l	#$1B02,(a0)
;      ctx->Polygon.Unfilled = GL_FALSE;
	move.l	a2,a0
	add.l	#$DDFA,a0
	clr.b	(a0)
;      ctx->Polygon.SmoothFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$DE04,a0
	clr.b	(a0)
;      ctx->Polygon.StippleFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$DE05,a0
	clr.b	(a0)
;      ctx->Polygon.OffsetFactor = 0.0F;
	move.l	a2,a0
	add.l	#$DE06,a0
	clr.l	(a0)
;      ctx->Polygon.OffsetUnits = 0.0F;
	move.l	a2,a0
	add.l	#$DE0A,a0
	clr.l	(a0)
;      ctx->Polygon.OffsetPoint = GL_FALSE;
	move.l	a2,a0
	add.l	#$DE0E,a0
	clr.b	(a0)
;      ctx->Polygon.OffsetLine = GL_FALSE;
	move.l	a2,a0
	add.l	#$DE0F,a0
	clr.b	(a0)
;      ctx->Polygon.OffsetFill = GL_FALSE;
	move.l	a2,a0
	add.l	#$DE10,a0
	clr.b	(a0)
;      ctx->Polygon.OffsetAny = GL_FALSE;
	move.l	a2,a0
	add.l	#$DE11,a0
	clr.b	(a0)
;MSET( ctx->Polygo
	pea	$80.w
	pea	$FF.w
	move.l	a2,a0
	add.l	#$DE12,a0
	pea	(a0)
	jsr	_q_memset
	add.w	#$C,a7
;      ctx->Scissor.Enabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$DE92,a0
	clr.b	(a0)
;      ctx->Scissor.X = 0;
	move.l	a2,a0
	add.l	#$DE94,a0
	clr.l	(a0)
;      ctx->Scissor.Y = 0;
	move.l	a2,a0
	add.l	#$DE98,a0
	clr.l	(a0)
;      ctx->Scissor.Width = 0;
	move.l	a2,a0
	add.l	#$DE9C,a0
	clr.l	(a0)
;      ctx->Scissor.Height = 0;
	move.l	a2,a0
	add.l	#$DEA0,a0
	clr.l	(a0)
;      ctx->Stencil.Enabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$DEA4,a0
	clr.b	(a0)
;      ctx->Stencil.Function = GL_ALWAYS;
	move.l	a2,a0
	add.l	#$DEA6,a0
	move.l	#$207,(a0)
;      ctx->Stencil.FailFunc = GL_KEEP;
	move.l	a2,a0
	add.l	#$DEAA,a0
	move.l	#$1E00,(a0)
;      ctx->Stencil.ZPassFunc = GL_KEEP;
	move.l	a2,a0
	add.l	#$DEAE,a0
	move.l	#$1E00,(a0)
;      ctx->Stencil.ZFailFunc = GL_KEEP;
	move.l	a2,a0
	add.l	#$DEB2,a0
	move.l	#$1E00,(a0)
;      ctx->Stencil.Ref = 0;
	move.l	a2,a0
	add.l	#$DEB6,a0
	clr.b	(a0)
;      ctx->Stencil.ValueMask = 0xff;
	move.l	a2,a0
	add.l	#$DEB7,a0
	move.b	#$FF,(a0)
;      ctx->Stencil.Clear = 0;
	move.l	a2,a0
	add.l	#$DEB8,a0
	clr.b	(a0)
;      ctx->Stencil.WriteMask = 0xff;
	move.l	a2,a0
	add.l	#$DEB9,a0
	move.b	#$FF,(a0)
;      ctx->Texture.CurrentSet = 0;
	move.l	a2,a0
	add.l	#$DEBA,a0
	clr.l	(a0)
;      ctx->Texture.CurrentTransformSet = 0;
	move.l	a2,a0
	add.l	#$DEBE,a0
	clr.l	(a0)
;      ctx->Texture.Enabled = 0;
	move.l	a2,a0
	add.l	#$DEC2,a0
	clr.l	(a0)
;      ctx->Texture.AnyDirty = GL_FALSE;
	move.l	a2,a0
	add.l	#$E03E,a0
	clr.b	(a0)
;      for (i=0;
	moveq	#0,d2
	bra.b	L339
L338
;         init_texture_set( ctx, i );
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_init_texture_set
	addq.w	#$8,a7
	addq.l	#1,d2
L339
	cmp.l	#2,d2
	blo.b	L338
L340
;      ctx->Texture.SharedPalette = GL_FALSE;
	move.l	a2,a0
	add.l	#$E04C,a0
	clr.b	(a0)
;      ctx->Texture.Palette[0] = 255;
	move.l	a2,a0
	add.l	#$E04D,a0
	move.b	#$FF,(a0)
;      ctx->Texture.Palette[1] = 255;
	move.l	a2,a0
	add.l	#$E04D,a0
	move.b	#$FF,1(a0)
;      ctx->Texture.Palette[2] = 255;
	move.l	a2,a0
	add.l	#$E04D,a0
	move.b	#$FF,2(a0)
;      ctx->Texture.Palette[3] = 255;
	move.l	a2,a0
	add.l	#$E04D,a0
	move.b	#$FF,3(a0)
;      ctx->Texture.PaletteSize = 1;
	move.l	a2,a0
	add.l	#$E44E,a0
	move.l	#1,(a0)
;      ctx->Texture.PaletteIntFormat = GL_RGBA;
	move.l	a2,a0
	add.l	#$E452,a0
	move.l	#$1908,(a0)
;      ctx->Texture.PaletteFormat = GL_RGBA;
	move.l	a2,a0
	add.l	#$E456,a0
	move.l	#$1908,(a0)
;      ctx->Transform.MatrixMode = GL_MODELVIEW;
	move.l	a2,a0
	add.l	#$E4D2,a0
	move.l	#$1700,(a0)
;      ctx->Transform.Normalize = GL_FALSE;
	move.l	a2,a0
	add.l	#$E53D,a0
	clr.b	(a0)
;      ctx->Transform.RescaleNormals = GL_FALSE;
	move.l	a2,a0
	add.l	#$E53E,a0
	clr.b	(a0)
;      for (i=0;
	moveq	#0,d2
	bra.b	L342
L341
;	 ctx->Transform.ClipEnabled[i] = GL_FALSE;
	move.l	a2,a0
	add.l	#$E536,a0
	clr.b	0(a0,d2.l)
;ctx->Transform.Cl
	move.l	a2,a0
	add.l	#$E4D6,a0
	move.l	d2,d0
	asl.l	#4,d0
	clr.l	0(a0,d0.l)
;ctx->Transform.Cl
	move.l	a2,a0
	add.l	#$E4D6,a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	clr.l	4(a0)
;ctx->Transform.Cl
	move.l	a2,a0
	add.l	#$E4D6,a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	clr.l	$8(a0)
;ctx->Transform.Cl
	move.l	a2,a0
	add.l	#$E4D6,a0
	move.l	d2,d0
	asl.l	#4,d0
	lea	0(a0,d0.l),a0
	clr.l	$C(a0)
	addq.l	#1,d2
L342
	cmp.l	#6,d2
	blo.b	L341
L343
;      ctx->Transform.AnyClip = GL_FALSE;
	move.l	a2,a0
	add.l	#$E53C,a0
	clr.b	(a0)
;      ctx->Viewport.X = 0;
	move.l	a2,a0
	add.l	#$E540,a0
	clr.l	(a0)
;      ctx->Viewport.Y = 0;
	move.l	a2,a0
	add.l	#$E544,a0
	clr.l	(a0)
;      ctx->Viewport.Width = 0;
	move.l	a2,a0
	add.l	#$E548,a0
	clr.l	(a0)
;      ctx->Viewport.Height = 0;
	move.l	a2,a0
	add.l	#$E54C,a0
	clr.l	(a0)
;      ctx->Viewport.Near = 0.0;
	move.l	a2,a0
	add.l	#$E550,a0
	clr.l	(a0)
;      ctx->Viewport.Far = 1.0;
	move.l	a2,a0
	add.l	#$E554,a0
	move.l	#$3F800000,(a0)
;      ctx->Viewport.Sx = 0.0;
	move.l	a2,a0
	add.l	#$E558,a0
	clr.l	(a0)
;      ctx->Viewport.Tx = 0.0;
	move.l	a2,a0
	add.l	#$E564,a0
	clr.l	(a0)
;      ctx->Viewport.Sy = 0.0;
	move.l	a2,a0
	add.l	#$E55C,a0
	clr.l	(a0)
;      ctx->Viewport.Ty = 0.0;
	move.l	a2,a0
	add.l	#$E568,a0
	clr.l	(a0)
;      ctx->Viewport.Sz = 0.5 * DEPTH_SCALE;
	move.l	a2,a0
	add.l	#$E560,a0
	move.l	#$46FFFF00,(a0)
;      ctx->Viewport.Tz = 0.5 * DEPTH_SCALE;
	move.l	a2,a0
	add.l	#$E56C,a0
	move.l	#$46FFFF00,(a0)
;      ctx->Array.VertexSize = 4;
	move.l	a2,a0
	add.l	#$E5B8,a0
	move.l	#4,(a0)
;      ctx->Array.VertexType = GL_FLOAT;
	move.l	a2,a0
	add.l	#$E5BC,a0
	move.l	#$1406,(a0)
;      ctx->Array.VertexStride = 0;
	move.l	a2,a0
	add.l	#$E5C0,a0
	clr.l	(a0)
;      ctx->Array.VertexStrideB = 0;
	move.l	a2,a0
	add.l	#$E5C4,a0
	clr.l	(a0)
;      ctx->Array.VertexPtr = NULL;
	move.l	a2,a1
	add.l	#$E5C8,a1
	clr.l	(a1)
;      ctx->Array.VertexEnabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$E5CC,a0
	clr.b	(a0)
;      ctx->Array.NormalType = GL_FLOAT;
	move.l	a2,a0
	add.l	#$E5CE,a0
	move.l	#$1406,(a0)
;      ctx->Array.NormalStride = 0;
	move.l	a2,a0
	add.l	#$E5D2,a0
	clr.l	(a0)
;      ctx->Array.NormalStrideB = 0;
	move.l	a2,a0
	add.l	#$E5D6,a0
	clr.l	(a0)
;      ctx->Array.NormalPtr = NULL;
	move.l	a2,a1
	add.l	#$E5DA,a1
	clr.l	(a1)
;      ctx->Array.NormalEnabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$E5DE,a0
	clr.b	(a0)
;      ctx->Array.ColorSize = 4;
	move.l	a2,a0
	add.l	#$E5E0,a0
	move.l	#4,(a0)
;      ctx->Array.ColorType = GL_FLOAT;
	move.l	a2,a0
	add.l	#$E5E4,a0
	move.l	#$1406,(a0)
;      ctx->Array.ColorStride = 0;
	move.l	a2,a0
	add.l	#$E5E8,a0
	clr.l	(a0)
;      ctx->Array.ColorStrideB = 0;
	move.l	a2,a0
	add.l	#$E5EC,a0
	clr.l	(a0)
;      ctx->Array.ColorPtr = NULL;
	move.l	a2,a1
	add.l	#$E5F0,a1
	clr.l	(a1)
;      ctx->Array.ColorEnabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$E5F4,a0
	clr.b	(a0)
;      ctx->Array.IndexType = GL_FLOAT;
	move.l	a2,a0
	add.l	#$E5F6,a0
	move.l	#$1406,(a0)
;      ctx->Array.IndexStride = 0;
	move.l	a2,a0
	add.l	#$E5FA,a0
	clr.l	(a0)
;      ctx->Array.IndexStrideB = 0;
	move.l	a2,a0
	add.l	#$E5FE,a0
	clr.l	(a0)
;      ctx->Array.IndexPtr = NULL;
	move.l	a2,a1
	add.l	#$E602,a1
	clr.l	(a1)
;      ctx->Array.IndexEnabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$E606,a0
	clr.b	(a0)
;      for (i = 0;
	moveq	#0,d2
	bra.b	L345
L344
;         ctx->Array.TexCoordSize[i] = 4;
	move.l	a2,a0
	add.l	#$E608,a0
	move.l	#4,0(a0,d2.l*4)
;         ctx->Array.TexCoordType[i] = GL_FLOAT;
	move.l	a2,a0
	add.l	#$E610,a0
	move.l	#$1406,0(a0,d2.l*4)
;         ctx->Array.TexCoordStride[i] = 0;
	move.l	a2,a0
	add.l	#$E618,a0
	clr.l	0(a0,d2.l*4)
;         ctx->Array.TexCoordStrideB[i] = 0;
	move.l	a2,a0
	add.l	#$E620,a0
	clr.l	0(a0,d2.l*4)
;         ctx->Array.TexCoordPtr[i] = NULL;
	move.l	a2,a0
	add.l	#$E628,a0
	clr.l	0(a0,d2.l*4)
;         ctx->Array.TexCoordEnabled[i] = GL_FALSE;
	move.l	a2,a0
	add.l	#$E630,a0
	clr.b	0(a0,d2.l)
	addq.l	#1,d2
L345
	cmp.l	#2,d2
	blo.b	L344
L346
;      ctx->Array.TexCoordInterleaveFactor = 1;
	move.l	a2,a0
	add.l	#$E632,a0
	move.l	#1,(a0)
;      ctx->Array.EdgeFlagStride = 0;
	move.l	a2,a0
	add.l	#$E636,a0
	clr.l	(a0)
;      ctx->Array.EdgeFlagStrideB = 0;
	move.l	a2,a0
	add.l	#$E63A,a0
	clr.l	(a0)
;      ctx->Array.EdgeFlagPtr = NULL;
	move.l	a2,a1
	add.l	#$E63E,a1
	clr.l	(a1)
;      ctx->Array.EdgeFlagEnabled = GL_FALSE;
	move.l	a2,a0
	add.l	#$E642,a0
	clr.b	(a0)
;      ctx->Pack.Alignment = 4;
	move.l	a2,a0
	add.l	#$E644,a0
	move.l	#4,(a0)
;      ctx->Pack.RowLength = 0;
	move.l	a2,a0
	add.l	#$E648,a0
	clr.l	(a0)
;      ctx->Pack.SkipPixels = 0;
	move.l	a2,a0
	add.l	#$E64C,a0
	clr.l	(a0)
;      ctx->Pack.SkipRows = 0;
	move.l	a2,a0
	add.l	#$E650,a0
	clr.l	(a0)
;      ctx->Pack.SwapBytes = GL_FALSE;
	move.l	a2,a0
	add.l	#$E65C,a0
	clr.b	(a0)
;      ctx->Pack.LsbFirst = GL_FALSE;
	move.l	a2,a0
	add.l	#$E65D,a0
	clr.b	(a0)
;      ctx->Unpack.Alignment = 4;
	move.l	a2,a0
	add.l	#$E65E,a0
	move.l	#4,(a0)
;      ctx->Unpack.RowLength = 0;
	move.l	a2,a0
	add.l	#$E662,a0
	clr.l	(a0)
;      ctx->Unpack.SkipPixels = 0;
	move.l	a2,a0
	add.l	#$E666,a0
	clr.l	(a0)
;      ctx->Unpack.SkipRows = 0;
	move.l	a2,a0
	add.l	#$E66A,a0
	clr.l	(a0)
;      ctx->Unpack.SwapBytes = GL_FALSE;
	move.l	a2,a0
	add.l	#$E676,a0
	clr.b	(a0)
;      ctx->Unpack.LsbFirst = GL_FALSE;
	move.l	a2,a0
	add.l	#$E677,a0
	clr.b	(a0)
;      ctx->Feedback.Type = GL_2D;
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	#$600,(a0)
;      ctx->Feedback.Buffer = NULL;
	move.l	a2,a1
	add.l	#$E830,a1
	clr.l	(a1)
;      ctx->Feedback.BufferSize = 0;
	move.l	a2,a0
	add.l	#$E834,a0
	clr.l	(a0)
;      ctx->Feedback.Count = 0;
	move.l	a2,a0
	add.l	#$E838,a0
	clr.l	(a0)
;      ctx->Select.Buffer = NULL;
	move.l	a2,a1
	add.l	#$E83C,a1
	clr.l	(a1)
;      ctx->Select.BufferSize = 0;
	move.l	a2,a0
	add.l	#$E840,a0
	clr.l	(a0)
;      ctx->Select.BufferCount = 0;
	move.l	a2,a0
	add.l	#$E844,a0
	clr.l	(a0)
;      ctx->Select.Hits = 0;
	move.l	a2,a0
	add.l	#$E848,a0
	clr.l	(a0)
;      ctx->Select.NameStackDepth = 0;
	move.l	a2,a0
	add.l	#$E84C,a0
	clr.l	(a0)
;      ctx->TexCoordSet = 0;
	move.l	a2,a0
	add.l	#$E570,a0
	clr.l	(a0)
;      ctx->AttribStackDepth = 0;
	clr.l	$2170(a2)
;      ctx->ClientAttribStackDepth = 0;
	move.l	a2,a0
	add.l	#$E574,a0
	clr.l	(a0)
;      ctx->NewState = NEW_ALL;
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	#$FF,(a0)
;      ctx->RenderMode = GL_RENDER;
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	#$1C00,(a0)
;      ctx->Primitive = GL_BITMAP;
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	#$1A00,(a0)
;      ctx->StippleCounter = 0;
	move.l	a2,a0
	add.l	#$E96C,a0
	clr.l	(a0)
;      ctx->NeedNormals = GL_FALSE;
	move.l	a2,a0
	add.l	#$E986,a0
	clr.b	(a0)
;      ctx->DoViewportMapping = GL_TRUE;
	move.l	a2,a0
	add.l	#$E98E,a0
	move.b	#1,(a0)
;      ctx->CallDepth = 0;
	clr.l	$215A(a2)
;      ctx->ExecuteFlag = GL_TRUE;
	move.b	#1,$215E(a2)
;      ctx->CompileFlag = GL_FALSE;
	clr.b	$215F(a2)
;      ctx->CurrentListPtr = NULL;
	clr.l	$2160(a2)
;      ctx->CurrentBlock = NULL;
	clr.l	$2168(a2)
;      ctx->CurrentListNum = 0;
	clr.l	$2164(a2)
;      ctx->CurrentPos = 0;
	clr.l	$216C(a2)
;      ctx->ErrorValue = (GLenum) GL_NO_ERROR;
	move.l	a2,a0
	add.l	#$E95A,a0
	clr.l	(a0)
;      ctx->NoRaster = getenv("MESA_NO_RASTER") ? GL_TRUE : GL_
	move.l	#L320,-(a7)
	jsr	_getenv
	addq.w	#4,a7
	tst.l	d0
	beq.b	L348
L347
	moveq	#1,d0
	bra.b	L349
L348
	moveq	#0,d0
L349
	move.l	a2,a0
	add.l	#$E99C,a0
	move.b	d0,(a0)
;      ctx->NoDither = getenv("MESA_NO_DITHER") ? GL_TRUE : GL_
	move.l	#L321,-(a7)
	jsr	_getenv
	addq.w	#4,a7
	tst.l	d0
	beq.b	L351
L350
	moveq	#1,d0
	bra.b	L352
L351
	moveq	#0,d0
L352
	move.l	a2,a0
	add.l	#$E99D,a0
	move.b	d0,(a0)
;      if (ctx->NoDither) 
	move.l	a2,a0
	add.l	#$E99D,a0
	tst.b	(a0)
	beq.b	L356
L353
;         if (getenv("MESA_DEBUG")) 
	move.l	#L322,-(a7)
	jsr	_getenv
	addq.w	#4,a7
	tst.l	d0
	beq.b	L355
L354
;            fprintf(stderr, "MESA_NO_DITHER set - dither
	move.l	#L323,-(a7)
	pea	_std__err(a6)
	jsr	_fprintf
	addq.w	#$8,a7
L355
;         ctx->Color.DitherFlag = GL_FALSE;
	clr.b	$2215(a2)
L356
	movem.l	(a7)+,d2/a2
	rts

L322
	dc.b	'MESA_DEBUG',0
L321
	dc.b	'MESA_NO_DITHER',0
L323
	dc.b	'MESA_NO_DITHER set - dithering disabled',$A,0
L320
	dc.b	'MESA_NO_RASTER',0

	SECTION "_initialize_context:1",DATA

_identity___initialize_context
	dc.l	$3F800000,0,0,0,0,$3F800000,0,0,0,0,$3F800000
	dc.l	0,0,0,0,$3F800000
_vertex___initialize_context
	dc.l	0,0,0,$3F800000
_normal___initialize_context
	dc.l	0,0,$3F800000
_index___initialize_context
	dc.l	$3F800000
_color___initialize_context
	dc.l	$3F800000,$3F800000,$3F800000,$3F800000
_texcoord___initialize_context
	dc.l	0,0,0,$3F800000

	SECTION "_gl_create_visual:0",CODE


;      return GL_FALSE;
	XDEF	_gl_create_visual
_gl_create_visual
L384	EQU	-4
	link	a5,#L384
	movem.l	d2-d7,-(a7)
	move.l	$2C(a5),d2
	move.b	$A(a5),d3
	move.b	$C(a5),d4
	move.l	$18(a5),d5
	move.l	$14(a5),d6
	move.l	$10(a5),d7
L358
;   if (stereoFlag) 
	tst.b	$E(a5)
	beq.b	L360
L359
;      gl_warning(NULL, "stereo not supported");
	move.l	#L357,-(a7)
	clr.l	-(a7)
	jsr	_gl_warning
	addq.w	#$8,a7
	moveq	#0,d0
	movem.l	(a7)+,d2-d7
	unlk	a5
	rts
L360
;   if (depthBits > (GLint) (8*sizeof(GLdepth))) 
	move.l	d7,d0
	cmp.l	#$10,d0
	ble.b	L362
L361
	moveq	#0,d0
	movem.l	(a7)+,d2-d7
	unlk	a5
	rts
L362
;   if (stencilBits > (GLint) (8*sizeof(GLstencil))) 
	move.l	d6,d0
	cmp.l	#$8,d0
	ble.b	L364
L363
	moveq	#0,d0
	movem.l	(a7)+,d2-d7
	unlk	a5
	rts
L364
;   if (accumBits > (GLint) (8*sizeof(GLaccum))) 
	cmp.l	#$10,d5
	ble.b	L366
L365
	moveq	#0,d0
	movem.l	(a7)+,d2-d7
	unlk	a5
	rts
L366
;   vis = (GLvisual *) calloc( 1, sizeof(GLvisual) );
	pea	$26.w
	pea	1.w
	jsr	_calloc
	addq.w	#$8,a7
	move.l	d0,a0
;   if (!vis) 
	cmp.w	#0,a0
	bne.b	L368
L367
	moveq	#0,d0
	movem.l	(a7)+,d2-d7
	unlk	a5
	rts
L368
;   vis->RGBAflag   = rgbFlag;
	move.b	$8(a5),(a0)
;   vis->DBflag     = dbFlag;
	move.b	d4,1(a0)
;   vis->StereoFlag = stereoFlag;
	move.b	$E(a5),2(a0)
;   vis->RedBits    = redBits;
	move.l	$20(a5),4(a0)
;   vis->GreenBits  = greenBits;
	move.l	$24(a5),$8(a0)
;   vis->BlueBits   = blueBits;
	move.l	$28(a5),$C(a0)
;   vis->AlphaBits  = alphaFlag ? 8*sizeof(GLubyte) : alphaBits;
	tst.b	d3
	beq.b	L370
L369
	moveq	#$8,d2
L370
L371
	move.l	d2,$10(a0)
;   vis->IndexBits   = indexBits;
	move.l	$1C(a5),$14(a0)
;   vis->DepthBits   = (depthBits>0) ? 8*sizeof(GLdepth) : 0;
	move.l	d7,d0
	cmp.l	#0,d0
	ble.b	L373
L372
	moveq	#$10,d0
	bra.b	L374
L373
	moveq	#0,d0
L374
	move.l	d0,$1C(a0)
;   vis->AccumBits   = (accumBits>0) ? 8*sizeof(GLaccum) : 0;
	cmp.l	#0,d5
	ble.b	L376
L375
	moveq	#$10,d0
	bra.b	L377
L376
	moveq	#0,d0
L377
	move.l	d0,$18(a0)
;   vis->StencilBits = (stencilBits>0) ? 8*sizeof(GLstencil) : 0;
	move.l	d6,d0
	cmp.l	#0,d0
	ble.b	L379
L378
	moveq	#$8,d0
	bra.b	L380
L379
	moveq	#0,d0
L380
	move.l	d0,$20(a0)
;   if (alphaFlag) 
	tst.b	d3
	beq.b	L383
L381
;      vis->FrontAlphaEnabled = GL_TRUE;
	move.b	#1,$24(a0)
;      if (dbFlag) 
	tst.b	d4
	beq.b	L383
L382
;         vis->BackAlphaEnabled = GL_TRUE;
	move.b	#1,$25(a0)
L383
	move.l	a0,d0
	movem.l	(a7)+,d2-d7
	unlk	a5
	rts

L357
	dc.b	'stereo not supported',0

	SECTION "_gl_destroy_visual:0",CODE


;void gl_destroy_visual( GLvisual *vis )
	XDEF	_gl_destroy_visual
_gl_destroy_visual
	move.l	4(a7),a0
L385
;   free( vis );
	move.l	a0,-(a7)
	jsr	_free
	addq.w	#4,a7
	rts

	SECTION "_alloc_proxy_textures:0",CODE


;static GLboolean alloc_proxy_textures( GLcontext *ctx )
_alloc_proxy_textures
	movem.l	d2/d3/a2,-(a7)
	move.l	$10(a7),a2
L386
;   ctx->Texture.Proxy1D = gl_alloc_texture_object(NULL, 0, 1);
	pea	1.w
	clr.l	-(a7)
	clr.l	-(a7)
	jsr	_gl_alloc_texture_object
	add.w	#$C,a7
	move.l	a2,a1
	add.l	#$E040,a1
	move.l	d0,(a1)
;   if (!ctx->Texture.Proxy1D) 
	move.l	a2,a0
	add.l	#$DEBA,a0
	tst.l	$186(a0)
	bne.b	L388
L387
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L388
;   ctx->Texture.Proxy2D = gl_alloc_texture_object(NULL, 0, 2);
	pea	2.w
	clr.l	-(a7)
	clr.l	-(a7)
	jsr	_gl_alloc_texture_object
	add.w	#$C,a7
	move.l	a2,a1
	add.l	#$E044,a1
	move.l	d0,(a1)
;   if (!ctx->Texture.Proxy2D) 
	move.l	a2,a0
	add.l	#$DEBA,a0
	tst.l	$18A(a0)
	bne.b	L390
L389
;      gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L390
;   ctx->Texture.Proxy3D = gl_alloc_texture_object(NULL, 0, 3);
	pea	3.w
	clr.l	-(a7)
	clr.l	-(a7)
	jsr	_gl_alloc_texture_object
	add.w	#$C,a7
	move.l	a2,a1
	add.l	#$E048,a1
	move.l	d0,(a1)
;   if (!ctx->Texture.Proxy3D) 
	move.l	a2,a0
	add.l	#$DEBA,a0
	tst.l	$18E(a0)
	bne.b	L392
L391
;      gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
;      gl_free_texture_object(NULL, ctx->Texture.Proxy2D);
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18A(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L392
;   out_of_memory = GL_FALSE;
	moveq	#0,d3
;   for (i=0;
	moveq	#0,d2
	bra	L398
L393
;      ctx->Texture.Proxy1D->Image[i] = gl_alloc_texture_image()
	jsr	_gl_alloc_texture_image
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),a0
	lea	$50(a0),a0
	move.l	d0,0(a0,d2.l*4)
;      ctx->Texture.Proxy2D->Image[i] = gl_alloc_texture_image()
	jsr	_gl_alloc_texture_image
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18A(a0),a0
	lea	$50(a0),a0
	move.l	d0,0(a0,d2.l*4)
;      ctx->Texture.Proxy3D->Image[i] = gl_alloc_texture_image()
	jsr	_gl_alloc_texture_image
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18E(a0),a0
	lea	$50(a0),a0
	move.l	d0,0(a0,d2.l*4)
;      if (!ctx->Texture.Proxy1D->Image[i]
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),a0
	lea	$50(a0),a0
	tst.l	0(a0,d2.l*4)
	beq.b	L396
L394
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18A(a0),a0
	lea	$50(a0),a0
	tst.l	0(a0,d2.l*4)
	beq.b	L396
L395
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18E(a0),a0
	lea	$50(a0),a0
	tst.l	0(a0,d2.l*4)
	bne.b	L397
L396
;         out_of_memory = GL_TRUE;
	moveq	#1,d3
L397
	addq.l	#1,d2
L398
	cmp.l	#$B,d2
	blt	L393
L399
;   if (out_of_memory) 
	tst.b	d3
	beq	L410
L400
;      for (i=0;
	moveq	#0,d2
	bra	L408
L401
;         if (ctx->Texture.Proxy1D->Image[i]) 
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),a0
	lea	$50(a0),a0
	tst.l	0(a0,d2.l*4)
	beq.b	L403
L402
;            gl_free_texture_image(ctx->Texture.Proxy1D->
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),a0
	lea	$50(a0),a0
	move.l	0(a0,d2.l*4),-(a7)
	jsr	_gl_free_texture_image
	addq.w	#4,a7
L403
;         if (ctx->Texture.Proxy2D->Image[i]) 
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18A(a0),a0
	lea	$50(a0),a0
	tst.l	0(a0,d2.l*4)
	beq.b	L405
L404
;            gl_free_texture_image(ctx->Texture.Proxy2D->
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18A(a0),a0
	lea	$50(a0),a0
	move.l	0(a0,d2.l*4),-(a7)
	jsr	_gl_free_texture_image
	addq.w	#4,a7
L405
;         if (ctx->Texture.Proxy3D->Image[i]) 
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18E(a0),a0
	lea	$50(a0),a0
	tst.l	0(a0,d2.l*4)
	beq.b	L407
L406
;            gl_free_texture_image(ctx->Texture.Proxy3D->
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18E(a0),a0
	lea	$50(a0),a0
	move.l	0(a0,d2.l*4),-(a7)
	jsr	_gl_free_texture_image
	addq.w	#4,a7
L407
	addq.l	#1,d2
L408
	cmp.l	#$B,d2
	blt	L401
L409
;      gl_free_texture_object(NULL, ctx->Texture.Proxy1D);
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
;      gl_free_texture_object(NULL, ctx->Texture.Proxy2D);
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18A(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
;      gl_free_texture_object(NULL, ctx->Texture.Proxy3D);
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18E(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L410
	moveq	#1,d0
	movem.l	(a7)+,d2/d3/a2
	rts

	SECTION "_gl_create_context:0",CODE


;GLcontext *gl_create_context( GLvisual *visual,
	XDEF	_gl_create_context
_gl_create_context
L427	EQU	-4
	link	a5,#L427
	movem.l	d2/a2-a4,-(a7)
	move.b	$14(a5),d2
	move.l	$C(a5),a3
	move.l	$8(a5),a4
L411
;   gl_init_math();
	jsr	_gl_init_math
;   gl_init_lists();
	jsr	_gl_init_lists
;   gl_init_eval();
	jsr	_gl_init_eval
;   ctx = (GLcontext *) calloc( 1, sizeof(GLcontext) );
	move.l	#$E99E,-(a7)
	pea	1.w
	jsr	_calloc
	addq.w	#$8,a7
	move.l	d0,a2
;   if (!ctx) 
	cmp.w	#0,a2
	bne.b	L413
L412
	moveq	#0,d0
	movem.l	(a7)+,d2/a2-a4
	unlk	a5
	rts
L413
;   ctx->DriverCtx = driver_ctx;
	move.l	$10(a5),$9EC(a2)
;   ctx->Visual = visual;
	move.l	a4,$8F8(a2)
;   ctx->Buffer = NULL;
	clr.l	$8FC(a2)
;   ctx->VB = gl_alloc_vb();
	jsr	_gl_alloc_vb
	move.l	a2,a1
	add.l	#$E994,a1
	move.l	d0,(a1)
;   if (!ctx->VB) 
	move.l	a2,a1
	add.l	#$E994,a1
	tst.l	(a1)
	bne.b	L415
L414
;      free( ctx );
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/a2-a4
	unlk	a5
	rts
L415
;   ctx->PB = gl_alloc_pb();
	jsr	_gl_alloc_pb
	move.l	a2,a1
	add.l	#$E998,a1
	move.l	d0,(a1)
;   if (!ctx->PB) 
	move.l	a2,a1
	add.l	#$E998,a1
	tst.l	(a1)
	bne.b	L417
L416
;      free( ctx->VB );
	move.l	a2,a1
	add.l	#$E994,a1
	move.l	(a1),-(a7)
	jsr	_free
	addq.w	#4,a7
;      free( ctx );
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/a2-a4
	unlk	a5
	rts
L417
;   if (share_list) 
	cmp.w	#0,a3
	beq.b	L419
L418
;      ctx->Shared = share_list->Shared;
	move.l	a3,a1
	move.l	(a1),(a2)
	bra.b	L421
L419
;      ctx->Shared = alloc_shared_state();
	jsr	_alloc_shared_state
	move.l	d0,(a2)
;      if (!ctx->Shared) 
	tst.l	(a2)
	bne.b	L421
L420
;         free(ctx->VB);
	move.l	a2,a1
	add.l	#$E994,a1
	move.l	(a1),-(a7)
	jsr	_free
	addq.w	#4,a7
;         free(ctx->PB);
	move.l	a2,a1
	add.l	#$E998,a1
	move.l	(a1),-(a7)
	jsr	_free
	addq.w	#4,a7
;         free(ctx);
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/a2-a4
	unlk	a5
	rts
L421
;   ctx->Shared->RefCount++;
	move.l	(a2),a0
	addq.l	#1,(a0)
;   initialize_context( ctx );
	move.l	a2,-(a7)
	jsr	_initialize_context
	addq.w	#4,a7
;   ctx->DirectContext = direct;
	move.l	a2,a0
	add.l	#$E95E,a0
	move.b	d2,(a0)
;   if (visual->DBflag) 
	move.l	a4,a0
	tst.b	1(a0)
	beq.b	L423
L422
;      ctx->Color.DrawBuffer = GL_BACK;
	move.l	#$405,$21E2(a2)
;      ctx->Pixel.ReadBuffer = GL_BACK;
	move.l	a2,a0
	add.l	#$B168,a0
	move.l	#$405,(a0)
	bra.b	L424
L423
;      ctx->Color.DrawBuffer = GL_FRONT;
	move.l	#$404,$21E2(a2)
;      ctx->Pixel.ReadBuffer = GL_FRONT;
	move.l	a2,a0
	add.l	#$B168,a0
	move.l	#$404,(a0)
L424
;   if (!alloc_proxy_textures(ctx)) 
	move.l	a2,-(a7)
	jsr	_alloc_proxy_textures
	addq.w	#4,a7
	tst.b	d0
	bne.b	L426
L425
;      free_shared_state(ctx, ctx->Shared);
	move.l	(a2),-(a7)
	move.l	a2,-(a7)
	jsr	_free_shared_state
	addq.w	#$8,a7
;      free(ctx->VB);
	move.l	a2,a1
	add.l	#$E994,a1
	move.l	(a1),-(a7)
	jsr	_free
	addq.w	#4,a7
;      free(ctx->PB);
	move.l	a2,a1
	add.l	#$E998,a1
	move.l	(a1),-(a7)
	jsr	_free
	addq.w	#4,a7
;      free(ctx);
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/a2-a4
	unlk	a5
	rts
L426
;   gl_init_api_function_pointers( ctx );
	move.l	a2,-(a7)
	jsr	_gl_init_api_function_pointers
	addq.w	#4,a7
;   ctx->API = ctx->Exec;
	lea	$5FC(a2),a1
	lea	4(a2),a0
	move.w	#$BE,d0
L428
	move.l	(a1)+,(a0)+
	dbra	d0,L428
	move.l	a2,d0
	movem.l	(a7)+,d2/a2-a4
	unlk	a5
	rts

	SECTION "_gl_destroy_context:0",CODE


;void gl_destroy_context( GLcontext *ctx )
	XDEF	_gl_destroy_context
_gl_destroy_context
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L429
;   if (ctx) 
	cmp.w	#0,a2
	beq	L470
L430
;      free( ctx->PB );
	move.l	a2,a1
	add.l	#$E998,a1
	move.l	(a1),-(a7)
	jsr	_free
	addq.w	#4,a7
;      free( ctx->VB );
	move.l	a2,a1
	add.l	#$E994,a1
	move.l	(a1),-(a7)
	jsr	_free
	addq.w	#4,a7
;      ctx->Shared->RefCount--;
	move.l	(a2),a0
	subq.l	#1,(a0)
;      if (ctx->Shared->RefCount==0) 
	move.l	(a2),a0
	tst.l	(a0)
	bne.b	L432
L431
;	 free_shared_state( ctx, ctx->Shared );
	move.l	(a2),-(a7)
	move.l	a2,-(a7)
	jsr	_free_shared_state
	addq.w	#$8,a7
L432
;      gl_free_texture_object( NULL, ctx->Texture.Proxy1D );
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$186(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
;      gl_free_texture_object( NULL, ctx->Texture.Proxy2D );
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18A(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
;      gl_free_texture_object( NULL, ctx->Texture.Proxy3D );
	move.l	a2,a0
	add.l	#$DEBA,a0
	move.l	$18E(a0),-(a7)
	clr.l	-(a7)
	jsr	_gl_free_texture_object
	addq.w	#$8,a7
;      if (ctx->EvalMap.Map1Vertex3.Points)
	move.l	a2,a0
	add.l	#$E678,a0
	tst.l	$C(a0)
	beq.b	L434
L433
;         free( ctx->EvalMap.Map1Vertex3.Points );
	move.l	a2,a0
	add.l	#$E678,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L434
;      if (ctx->EvalMap.Map1Vertex4.Points)
	move.l	a2,a0
	add.l	#$E68A,a0
	tst.l	$C(a0)
	beq.b	L436
L435
;         free( ctx->EvalMap.Map1Vertex4.Points );
	move.l	a2,a0
	add.l	#$E68A,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L436
;      if (ctx->EvalMap.Map1Index.Points)
	move.l	a2,a0
	add.l	#$E69C,a0
	tst.l	$C(a0)
	beq.b	L438
L437
;         free( ctx->EvalMap.Map1Index.Points );
	move.l	a2,a0
	add.l	#$E69C,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L438
;      if (ctx->EvalMap.Map1Color4.Points)
	move.l	a2,a0
	add.l	#$E6AE,a0
	tst.l	$C(a0)
	beq.b	L440
L439
;         free( ctx->EvalMap.Map1Color4.Points );
	move.l	a2,a0
	add.l	#$E6AE,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L440
;      if (ctx->EvalMap.Map1Normal.Points)
	move.l	a2,a0
	add.l	#$E6C0,a0
	tst.l	$C(a0)
	beq.b	L442
L441
;         free( ctx->EvalMap.Map1Normal.Points );
	move.l	a2,a0
	add.l	#$E6C0,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L442
;      if (ctx->EvalMap.Map1Texture1.Points)
	move.l	a2,a0
	add.l	#$E6D2,a0
	tst.l	$C(a0)
	beq.b	L444
L443
;         free( ctx->EvalMap.Map1Texture1.Points );
	move.l	a2,a0
	add.l	#$E6D2,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L444
;      if (ctx->EvalMap.Map1Texture2.Points)
	move.l	a2,a0
	add.l	#$E6E4,a0
	tst.l	$C(a0)
	beq.b	L446
L445
;         free( ctx->EvalMap.Map1Texture2.Points );
	move.l	a2,a0
	add.l	#$E6E4,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L446
;      CC->Buffer = NULL;
	move.l	a2,a0
	add.l	#$E6F6,a0
	tst.l	$C(a0)
	beq.b	L448
L447
;         free( ctx->EvalMap.Map1Texture3.Points );
	move.l	a2,a0
	add.l	#$E6F6,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L448
;      if (ctx->EvalMap.Map1Texture4.Points)
	move.l	a2,a0
	add.l	#$E708,a0
	tst.l	$C(a0)
	beq.b	L450
L449
;         free( ctx->EvalMap.Map1Texture4.Points );
	move.l	a2,a0
	add.l	#$E708,a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L450
;      if (ctx->EvalMap.Map2Vertex3.Points)
	move.l	a2,a0
	add.l	#$E71A,a0
	tst.l	$18(a0)
	beq.b	L452
L451
;         free( ctx->EvalMap.Map2Vertex3.Points );
	move.l	a2,a0
	add.l	#$E71A,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L452
;      if (ctx->EvalMap.Map2Vertex4.Points)
	move.l	a2,a0
	add.l	#$E738,a0
	tst.l	$18(a0)
	beq.b	L454
L453
;         free( ctx->EvalMap.Map2Vertex4.Points );
	move.l	a2,a0
	add.l	#$E738,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L454
;      if (ctx->EvalMap.Map2Index.Points)
	move.l	a2,a0
	add.l	#$E756,a0
	tst.l	$18(a0)
	beq.b	L456
L455
;         free( ctx->EvalMap.Map2Index.Points );
	move.l	a2,a0
	add.l	#$E756,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L456
;      if (ctx->EvalMap.Map2Color4.Points)
	move.l	a2,a0
	add.l	#$E774,a0
	tst.l	$18(a0)
	beq.b	L458
L457
;         free( ctx->EvalMap.Map2Color4.Points );
	move.l	a2,a0
	add.l	#$E774,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L458
;      if (ctx->EvalMap.Map2Normal.Points)
	move.l	a2,a0
	add.l	#$E792,a0
	tst.l	$18(a0)
	beq.b	L460
L459
;         free( ctx->EvalMap.Map2Normal.Points );
	move.l	a2,a0
	add.l	#$E792,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L460
;      if (ctx->EvalMap.Map2Texture1.Points)
	move.l	a2,a0
	add.l	#$E7B0,a0
	tst.l	$18(a0)
	beq.b	L462
L461
;         free( ctx->EvalMap.Map2Texture1.Points );
	move.l	a2,a0
	add.l	#$E7B0,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L462
;      if (ctx->EvalMap.Map2Texture2.Points)
	move.l	a2,a0
	add.l	#$E7CE,a0
	tst.l	$18(a0)
	beq.b	L464
L463
;         free( ctx->EvalMap.Map2Texture2.Points );
	move.l	a2,a0
	add.l	#$E7CE,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L464
;      if (ctx->EvalMap.Map2Texture3.Points)
	move.l	a2,a0
	add.l	#$E7EC,a0
	tst.l	$18(a0)
	beq.b	L466
L465
;         free( ctx->EvalMap.Map2Texture3.Points );
	move.l	a2,a0
	add.l	#$E7EC,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L466
;      if (ctx->EvalMap.Map2Texture4.Points)
	move.l	a2,a0
	add.l	#$E80A,a0
	tst.l	$18(a0)
	beq.b	L468
L467
;         free( ctx->EvalMap.Map2Texture4.Points );
	move.l	a2,a0
	add.l	#$E80A,a0
	move.l	$18(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
L468
;      free( (void *) ctx );
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
;      if (ctx==CC) 
	cmp.l	_CC(a6),a2
	bne.b	L470
L469
;         CC = NULL;
	clr.l	_CC(a6)
L470
	move.l	(a7)+,a2
	rts

	SECTION "_gl_create_framebuffer:0",CODE


;GLframebuffer *gl_create_framebuffer( GLvisual *visual )
	XDEF	_gl_create_framebuffer
_gl_create_framebuffer
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L471
;   buffer = (GLframebuffer *) calloc( 1, sizeof(GLframebuffer) );
	pea	$34.w
	pea	1.w
	jsr	_calloc
	addq.w	#$8,a7
	move.l	d0,a0
;   if (!buffer) 
	cmp.w	#0,a0
	bne.b	L473
L472
	moveq	#0,d0
	move.l	(a7)+,a2
	rts
L473
;   buffer->Visual = visual;
	move.l	a2,(a0)
	move.l	a0,d0
	move.l	(a7)+,a2
	rts

	SECTION "_gl_destroy_framebuffer:0",CODE


;void gl_destroy_framebuffer( GLframebuffer *buffer )
	XDEF	_gl_destroy_framebuffer
_gl_destroy_framebuffer
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L474
;   if (buffer) 
	cmp.w	#0,a2
	beq.b	L486
L475
;      if (buffer->Depth) 
	tst.l	$C(a2)
	beq.b	L477
L476
;         free( buffer->Depth );
	move.l	$C(a2),-(a7)
	jsr	_free
	addq.w	#4,a7
L477
;      if (buffer->Accum) 
	tst.l	$14(a2)
	beq.b	L479
L478
;         free( buffer->Accum );
	move.l	$14(a2),-(a7)
	jsr	_free
	addq.w	#4,a7
L479
;      if (buffer->Stencil) 
	tst.l	$10(a2)
	beq.b	L481
L480
;         free( buffer->Stencil );
	move.l	$10(a2),-(a7)
	jsr	_free
	addq.w	#4,a7
L481
;      if (buffer->FrontAlpha) 
	tst.l	$18(a2)
	beq.b	L483
L482
;         free( buffer->FrontAlpha );
	move.l	$18(a2),-(a7)
	jsr	_free
	addq.w	#4,a7
L483
;      if (buffer->BackAlpha) 
	tst.l	$1C(a2)
	beq.b	L485
L484
;         free( buffer->BackAlpha );
	move.l	$1C(a2),-(a7)
	jsr	_free
	addq.w	#4,a7
L485
;      free(buffer);
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
L486
	move.l	(a7)+,a2
	rts

	SECTION "_gl_make_current:0",CODE


;void gl_make_current( GLcontext *ctx, GLframebuffer *buffer )
	XDEF	_gl_make_current
_gl_make_current
	movem.l	a2/a3,-(a7)
	movem.l	$C(a7),a0/a1
L487
;   if (CC && CC->Buffer) 
	tst.l	_CC(a6)
	beq.b	L490
L488
	move.l	_CC(a6),a2
	tst.l	$8FC(a2)
	beq.b	L490
L489
;      CC->Buffer = NULL;
	move.l	_CC(a6),a3
	clr.l	$8FC(a3)
L490
;   CC = ctx;
	move.l	a0,_CC(a6)
;   if (ctx && buffer) 
	cmp.w	#0,a0
	beq.b	L493
L491
	cmp.w	#0,a1
	beq.b	L493
L492
;      ctx->Buffer = buffer;
	move.l	a1,$8FC(a0)
;      ctx->NewState = NEW_ALL;
	move.l	a0,a1
	add.l	#$E960,a1
	move.l	#$FF,(a1)
;      gl_update_state( ctx );
	move.l	a0,-(a7)
	jsr	_gl_update_state
	addq.w	#4,a7
L493
	movem.l	(a7)+,a2/a3
	rts

	SECTION "_gl_get_current_context:0",CODE


;GLcontext *gl_get_current_context( void )
	XDEF	_gl_get_current_context
_gl_get_current_context
L494
	move.l	_CC(a6),d0
	rts

	SECTION "_gl_copy_context:0",CODE


;void gl_copy_context( const GLcontext *src, GLcontext *dst, GLuint m
	XDEF	_gl_copy_context
_gl_copy_context
	movem.l	d2/d3/a2/a3,-(a7)
	move.l	$1C(a7),d2
	move.l	$18(a7),a2
	move.l	$14(a7),a3
L495
;   if (mask & GL_ACCUM_BUFFER_BIT) 
	move.l	d2,d0
	and.l	#$200,d0
	beq.b	L497
L496
;Accum, &src->Accu
	pea	$10.w
	pea	$21B4(a3)
	pea	$21B4(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L497
;   if (mask & GL_COLOR_BUFFER_BIT) 
	move.l	d2,d0
	and.l	#$4000,d0
	beq.b	L499
L498
; &src->Color, siz
	pea	$52.w
	pea	$21C4(a3)
	pea	$21C4(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L499
;   if (mask & GL_CURRENT_BIT) 
	move.l	d2,d0
	and.l	#1,d0
	beq.b	L501
L500
;t, &src->Current,
	pea	$86.w
	pea	$2216(a3)
	pea	$2216(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L501
;   if (mask & GL_DEPTH_BUFFER_BIT) 
	move.l	d2,d0
	and.l	#$100,d0
	beq.b	L503
L502
; &src->Depth, siz
	pea	$A.w
	pea	$229C(a3)
	pea	$229C(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L503
;   if (mask & GL_ENABLE_BIT) 
L504
;   if (mask & GL_EVAL_BIT) 
	move.l	d2,d0
	and.l	#$10000,d0
	beq.b	L506
L505
;t->Eval, &src->Ev
	pea	$38.w
	pea	$22A6(a3)
	pea	$22A6(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L506
;   if (mask & GL_FOG_BIT) 
	move.l	d2,d0
	and.l	#$80,d0
	beq.b	L508
L507
;&dst->Fog, &src->
	pea	$26.w
	pea	$22DE(a3)
	pea	$22DE(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L508
;   if (mask & GL_HINT_BIT) 
	move.l	d2,d0
	and.l	#$8000,d0
	beq.b	L510
L509
;t->Hint, &src->Hi
	pea	$14.w
	pea	$2304(a3)
	pea	$2304(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L510
;   if (mask & GL_LIGHTING_BIT) 
	move.l	d2,d0
	and.l	#$40,d0
	beq.b	L512
L511
;Light, &src->Ligh
	move.l	#$8E40,-(a7)
	pea	$2318(a3)
	pea	$2318(a2)
	jsr	_q_memcpy
	add.w	#$C,a7
L512
;   if (mask & GL_LINE_BIT) 
	move.l	d2,d0
	and.l	#4,d0
	beq.b	L514
L513
;t->Line, &src->Li
	pea	$C.w
	move.l	a3,a0
	add.l	#$B158,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$B158,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L514
;   if (mask & GL_LIST_BIT) 
	move.l	d2,d0
	and.l	#$20000,d0
	beq.b	L516
L515
;t->List, &src->Li
	pea	4.w
	move.l	a3,a0
	add.l	#$B164,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$B164,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L516
;   if (mask & GL_PIXEL_MODE_BIT) 
	move.l	d2,d0
	and.l	#$20,d0
	beq.b	L518
L517
;Pixel, &src->Pixe
	pea	$2C68.w
	move.l	a3,a0
	add.l	#$B168,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$B168,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L518
;   if (mask & GL_POINT_BIT) 
	move.l	d2,d0
	and.l	#2,d0
	beq.b	L520
L519
;Point, &src->Poin
	pea	$1E.w
	move.l	a3,a0
	add.l	#$DDD0,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$DDD0,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L520
;   if (mask & GL_POLYGON_BIT) 
	move.l	d2,d0
	and.l	#$8,d0
	beq.b	L522
L521
;n, &src->Polygon,
	pea	$24.w
	move.l	a3,a0
	add.l	#$DDEE,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$DDEE,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L522
;   if (mask & GL_POLYGON_STIPPLE_BIT) 
	move.l	d2,d0
	and.l	#$10,d0
	beq.b	L526
L523
;      for (i=0;
	moveq	#0,d0
	bra.b	L525
L524
;         dst->PolygonStipple[i] = src->PolygonStipple[i];
	move.l	a3,a0
	add.l	#$DE12,a0
	move.l	0(a0,d0.l*4),d1
	move.l	a2,a0
	add.l	#$DE12,a0
	move.l	d1,0(a0,d0.l*4)
	addq.l	#1,d0
L525
	cmp.l	#$20,d0
	blt.b	L524
L526
;   if (mask & GL_SCISSOR_BIT) 
	move.l	d2,d0
	and.l	#$80000,d0
	beq.b	L528
L527
;r, &src->Scissor,
	pea	$12.w
	move.l	a3,a0
	add.l	#$DE92,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$DE92,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L528
;   if (mask & GL_STENCIL_BUFFER_BIT) 
	move.l	d2,d0
	and.l	#$400,d0
	beq.b	L530
L529
;l, &src->Stencil,
	pea	$16.w
	move.l	a3,a0
	add.l	#$DEA4,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$DEA4,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L530
;   if (mask & GL_TEXTURE_BIT) 
	move.l	d2,d0
	and.l	#$40000,d0
	beq.b	L532
L531
;e, &src->Texture,
	pea	$618.w
	move.l	a3,a0
	add.l	#$DEBA,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$DEBA,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L532
;   if (mask & GL_TRANSFORM_BIT) 
	move.l	d2,d0
	and.l	#$1000,d0
	beq.b	L534
L533
;src->Transform, s
	pea	$6E.w
	move.l	a3,a0
	add.l	#$E4D2,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$E4D2,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L534
;   if (mask & GL_VIEWPORT_BIT) 
	and.l	#$800,d2
	beq.b	L536
L535
; &src->Viewport, 
	pea	$30.w
	move.l	a3,a0
	add.l	#$E540,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$E540,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L536
	movem.l	(a7)+,d2/d3/a2/a3
	rts

	SECTION "_gl_set_api_table:0",CODE


;void gl_set_api_table( GLcontext *ctx, const struct gl_api_table *ap
	XDEF	_gl_set_api_table
_gl_set_api_table
	movem.l	4(a7),a0/a1
L537
;   if (api) 
	cmp.w	#0,a1
	beq.b	L539
L538
;EMCPY( &ctx->API,
	pea	$2FC.w
	move.l	a1,-(a7)
	pea	4(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
	bra.b	L540
L539
;&ctx->API, &ctx->
	pea	$2FC.w
	pea	$5FC(a0)
	pea	4(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
L540
	rts

	SECTION "_gl_problem:0",CODE


;void gl_problem( const GLcontext *ctx, const char *s )
	XDEF	_gl_problem
_gl_problem
	move.l	$8(a7),a0
L543
;   fprintf( stderr, "Mesa implementation error: %s\n", s );
	move.l	a0,-(a7)
	move.l	#L541,-(a7)
	pea	_std__err(a6)
	jsr	_fprintf
	add.w	#$C,a7
;   fprintf( stderr, "Report to Mesa author.\n" );
	move.l	#L542,-(a7)
	pea	_std__err(a6)
	jsr	_fprintf
	addq.w	#$8,a7
;   (void) ctx;
	rts

L541
	dc.b	'Mesa implementation error: %s',$A,0
L542
	dc.b	'Report to Mesa author.',$A,0

	SECTION "_gl_warning:0",CODE


;void gl_warning( const GLcontext *ctx, const char *s )
	XDEF	_gl_warning
_gl_warning
	move.l	a2,-(a7)
	move.l	$C(a7),a2
L546
;   if (getenv("MESA_DEBUG")) 
	move.l	#L544,-(a7)
	jsr	_getenv
	addq.w	#4,a7
	tst.l	d0
	beq.b	L548
L547
;      debug = GL_TRUE;
	moveq	#1,d0
	bra.b	L549
L548
;      debug = GL_FALSE;
	moveq	#0,d0
L549
;   if (debug) 
	tst.b	d0
	beq.b	L551
L550
;      fprintf( stderr, "Mesa warning: %s\n", s );
	move.l	a2,-(a7)
	move.l	#L545,-(a7)
	pea	_std__err(a6)
	jsr	_fprintf
	add.w	#$C,a7
L551
;   (void) ctx;
	move.l	(a7)+,a2
	rts

L544
	dc.b	'MESA_DEBUG',0
L545
	dc.b	'Mesa warning: %s',$A,0

	SECTION "_gl_error:0",CODE


;void gl_error( GLcontext *ctx, GLenum error, const char *s )
	XDEF	_gl_error
_gl_error
L581	EQU	-$3EA
	link	a5,#L581
	movem.l	d2/a2/a3,-(a7)
	movem.l	$C(a5),d2/a3
	move.l	$8(a5),a2
L562
;   if (getenv("MESA_DEBUG")) 
	move.l	#L552,-(a7)
	jsr	_getenv
	addq.w	#4,a7
	tst.l	d0
	beq.b	L564
L563
;      debug = GL_TRUE;
	moveq	#1,d0
	bra.b	L565
L564
;      debug = GL_FALSE;
	moveq	#0,d0
L565
;   if (debug) 
	tst.b	d0
	beq	L576
L566
;      switch (error)
	move.l	d2,d0
	cmp.l	#$502,d0
	beq.b	L570
	bgt.b	L582
	cmp.l	#$500,d0
	beq.b	L569
	bgt.b	L583
	cmp.l	#0,d0
	beq.b	L567
	bra	L574
L583
	bgt.b	L568
L582
	cmp.l	#$504,d0
	beq	L572
	bgt.b	L584
	blt.b	L571
L584
	cmp.l	#$505,d0
	beq	L573
	bra	L574
;	 
L567
;	    strcpy( errstr, "GL_NO_ERROR" );
	move.l	#L553,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
	bra	L575
L568
;	    strcpy( errstr, "GL_INVALID_VALUE" );
	move.l	#L554,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
	bra	L575
L569
;	    strcpy( errstr, "GL_INVALID_ENUM" );
	move.l	#L555,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
	bra.b	L575
L570
;	    strcpy( errstr, "GL_INVALID_OPERATION" );
	move.l	#L556,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
	bra.b	L575
L571
;	    strcpy( errstr, "GL_STACK_OVERFLOW" );
	move.l	#L557,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
	bra.b	L575
L572
;	    strcpy( errstr, "GL_STACK_UNDERFLOW" );
	move.l	#L558,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
	bra.b	L575
L573
;	    strcpy( errstr, "GL_OUT_OF_MEMORY" );
	move.l	#L559,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
	bra.b	L575
L574
;	    strcpy( errstr, "unknown" );
	move.l	#L560,-(a7)
	pea	-$3EA(a5)
	jsr	_strcpy
	addq.w	#$8,a7
;	    
L575
;      fprintf( stderr, "Mesa user error: %s in %s\n", errstr, 
	move.l	a3,-(a7)
	pea	-$3EA(a5)
	move.l	#L561,-(a7)
	pea	_std__err(a6)
	jsr	_fprintf
	add.w	#$10,a7
L576
;   if (ctx->ErrorValue==GL_NO_ERROR) 
	move.l	a2,a0
	add.l	#$E95A,a0
	tst.l	(a0)
	bne.b	L578
L577
;      ctx->ErrorValue = error;
	move.l	a2,a0
	add.l	#$E95A,a0
	move.l	d2,(a0)
L578
;   if (ctx->Driver.Error) 
	tst.l	$978(a2)
	beq.b	L580
L579
;      (*ctx->Driver.Error)( ctx );
	move.l	a2,-(a7)
	move.l	$978(a2),a0
	jsr	(a0)
	addq.w	#4,a7
L580
	movem.l	(a7)+,d2/a2/a3
	unlk	a5
	rts

L555
	dc.b	'GL_INVALID_ENUM',0
L556
	dc.b	'GL_INVALID_OPERATION',0
L554
	dc.b	'GL_INVALID_VALUE',0
L553
	dc.b	'GL_NO_ERROR',0
L559
	dc.b	'GL_OUT_OF_MEMORY',0
L557
	dc.b	'GL_STACK_OVERFLOW',0
L558
	dc.b	'GL_STACK_UNDERFLOW',0
L552
	dc.b	'MESA_DEBUG',0
L561
	dc.b	'Mesa user error: %s in %s',$A,0
L560
	dc.b	'unknown',0

	SECTION "_gl_GetError:0",CODE


;GLenum gl_GetError( GLcontext *ctx )
	XDEF	_gl_GetError
_gl_GetError
	move.l	4(a7),a0
L586
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a0,a1
	add.l	#$E968,a1
	move.l	(a1),d0
	cmp.l	#$1A00,d0
	beq.b	L588
L587
;      gl_error( ctx, GL_INVALID_OPERATION, "glGetError" );
	move.l	#L585,-(a7)
	pea	$502.w
	move.l	a0,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	move.l	#$502,d0
	rts
L588
;   e = ctx->ErrorValue;
	move.l	a0,a1
	add.l	#$E95A,a1
	move.l	(a1),d0
;   ctx->ErrorValue = (GLenum) GL_NO_ERROR;
	add.l	#$E95A,a0
	clr.l	(a0)
	rts

L585
	dc.b	'glGetError',0

	SECTION "_gl_ResizeBuffersMESA:0",CODE


;void gl_ResizeBuffersMESA( GLcontext *ctx )
	XDEF	_gl_ResizeBuffersMESA
_gl_ResizeBuffersMESA
L606	EQU	-$C
	link	a5,#L606
	movem.l	d2/a2,-(a7)
	move.l	$8(a5),a2
L589
;   ctx->NewState |= NEW_ALL;
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	or.l	#$FF,d0
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	d0,(a0)
;   (*ctx->Driver.GetBufferSize)( ctx, &buf_width, &buf_height );
	pea	-$C(a5)
	pea	-$8(a5)
	move.l	a2,-(a7)
	move.l	$920(a2),a0
	jsr	(a0)
	add.w	#$C,a7
;   newsize = ctx->Buffer->Width != (GLint) buf_width
	moveq	#1,d2
	move.l	$8FC(a2),a0
	move.l	4(a0),d0
	cmp.l	-$8(a5),d0
	bne.b	L592
L590
	move.l	$8FC(a2),a0
	move.l	$8(a0),d0
	cmp.l	-$C(a5),d0
	bne.b	L592
L591
	moveq	#0,d2
L592
;   ctx->Buffer->Width = buf_width;
	move.l	$8FC(a2),a0
	move.l	-$8(a5),4(a0)
;   ctx->Buffer->Height = buf_height;
	move.l	$8FC(a2),a0
	move.l	-$C(a5),$8(a0)
;   if (newsize && ctx->Visual->DepthBits>0) 
	tst.l	d2
	beq.b	L595
L593
	move.l	$8F8(a2),a0
	move.l	$1C(a0),d0
	cmp.l	#0,d0
	ble.b	L595
L594
;      (*ctx->Driver.AllocDepthBuffer)( ctx );
	move.l	a2,-(a7)
	move.l	$984(a2),a0
	jsr	(a0)
	addq.w	#4,a7
L595
;   if (newsize && ctx->Visual->StencilBits>0) 
	tst.l	d2
	beq.b	L598
L596
	move.l	$8F8(a2),a0
	move.l	$20(a0),d0
	cmp.l	#0,d0
	ble.b	L598
L597
;      gl_alloc_stencil_buffer( ctx );
	move.l	a2,-(a7)
	jsr	_gl_alloc_stencil_buffer
	addq.w	#4,a7
L598
;   if (newsize && ctx->Visual->AccumBits>0) 
	tst.l	d2
	beq.b	L601
L599
	move.l	$8F8(a2),a0
	move.l	$18(a0),d0
	cmp.l	#0,d0
	ble.b	L601
L600
;      gl_alloc_accum_buffer( ctx );
	move.l	a2,-(a7)
	jsr	_gl_alloc_accum_buffer
	addq.w	#4,a7
L601
;         GLboolean red   = ctx-
	tst.l	d2
	beq.b	L605
L602
	move.l	$8F8(a2),a0
	tst.b	$24(a0)
	bne.b	L604
L603
	move.l	$8F8(a2),a0
	tst.b	$25(a0)
	beq.b	L605
L604
;      gl_alloc_alpha_buffers( ctx );
	move.l	a2,-(a7)
	jsr	_gl_alloc_alpha_buffers
	addq.w	#4,a7
L605
	movem.l	(a7)+,d2/a2
	unlk	a5
	rts

	SECTION "_update_pixel_logic:0",CODE


;static void update_pixel_logic( GLcontext *ctx )
_update_pixel_logic
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L607
;   if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq.b	L618
L608
;      if (ctx->Color.ColorLogicOpEnabled) 
	tst.b	$2213(a2)
	beq.b	L614
L609
;	 if (ctx->Driver.LogicOp
	tst.l	$970(a2)
	beq.b	L612
L610
	move.l	$220E(a2),-(a7)
	move.l	a2,-(a7)
	move.l	$970(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
	tst.b	d0
	beq.b	L612
L611
;	    ctx->Color.SWLogicOpEnabled = GL_FALSE;
	clr.b	$2214(a2)
	bra.b	L613
L612
;	    ctx->Color.SWLogicOpEnabled = GL_TRUE;
	move.b	#1,$2214(a2)
L613
	bra.b	L617
L614
;	 if (ctx->Driver.LogicOp) 
	tst.l	$970(a2)
	beq.b	L616
L615
;            (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY )
	pea	$1503.w
	move.l	a2,-(a7)
	move.l	$970(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
L616
;	 ctx->Color.SWLogicOpEnabled = GL_FALSE;
	clr.b	$2214(a2)
L617
	bra.b	L627
L618
;      if (ctx->Color.IndexLogicOpEnabled) 
	tst.b	$2212(a2)
	beq.b	L624
L619
;	 if (ctx->Driver.LogicOp
	tst.l	$970(a2)
	beq.b	L622
L620
	move.l	$220E(a2),-(a7)
	move.l	a2,-(a7)
	move.l	$970(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
	tst.b	d0
	beq.b	L622
L621
;	    ctx->Color.SWLogicOpEnabled = GL_FALSE;
	clr.b	$2214(a2)
	bra.b	L623
L622
;	    ctx->Color.SWLogicOpEnabled = GL_TRUE;
	move.b	#1,$2214(a2)
L623
	bra.b	L627
L624
;	 if (ctx->Driver.LogicOp) 
	tst.l	$970(a2)
	beq.b	L626
L625
;            (void) (*ctx->Driver.LogicOp)( ctx, GL_COPY )
	pea	$1503.w
	move.l	a2,-(a7)
	move.l	$970(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
L626
;	 ctx->Color.SWLogicOpEnabled = GL_FALSE;
	clr.b	$2214(a2)
L627
	move.l	(a7)+,a2
	rts

	SECTION "_update_pixel_masking:0",CODE


;static void update_pixel_masking( GLcontext *ctx )
_update_pixel_masking
	movem.l	d2-d4/a2,-(a7)
	move.l	$14(a7),a2
L628
;   if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq	L650
L629
;      GLuint *colorMask = (GLuint *) ctx->Color.ColorMask;
;      if (*colorMask == 0xffffffff) 
	move.l	$21DC(a2),d0
	cmp.l	#-1,d0
	bne.b	L633
L630
;         if (ctx->Driver.ColorMask) 
	tst.l	$96C(a2)
	beq.b	L632
L631
;            (void) (*ctx->Driver.ColorMask)( ctx, GL_TRU
	move.b	#1,-(a7)
	move.b	#1,-(a7)
	move.b	#1,-(a7)
	move.b	#1,-(a7)
	move.l	a2,-(a7)
	move.l	$96C(a2),a0
	jsr	(a0)
	add.w	#$C,a7
L632
;         ctx->Color.SWmasking = GL_FALSE;
	clr.b	$21E0(a2)
	bra.b	L649
L633
;         GLboolean red   = ctx->Color.ColorMask[RCOMP] ? GL
	tst.b	$21DC(a2)
	beq.b	L635
L634
	moveq	#1,d0
	bra.b	L636
L635
	moveq	#0,d0
L636
	move.b	d0,d3
;         GLboolean green = ctx->Color.ColorMask[GCOMP] ? GL
	lea	$21DC(a2),a0
	tst.b	1(a0)
	beq.b	L638
L637
	moveq	#1,d0
	bra.b	L639
L638
	moveq	#0,d0
L639
	move.b	d0,d2
;         GLboolean blue  = ctx->Color.ColorMask[BCOMP] ? GL
	lea	$21DC(a2),a0
	tst.b	2(a0)
	beq.b	L641
L640
	moveq	#1,d0
	bra.b	L642
L641
	moveq	#0,d0
L642
	move.b	d0,d1
;         GLboolean alpha = ctx->Color.ColorMask[ACOMP] ? GL
	lea	$21DC(a2),a0
	tst.b	3(a0)
	beq.b	L644
L643
	moveq	#1,d0
	bra.b	L645
L644
	moveq	#0,d0
L645
;         if (ctx->Driver.ColorMask
	tst.l	$96C(a2)
	beq.b	L648
L646
	move.b	d0,-(a7)
	move.b	d1,-(a7)
	move.b	d2,-(a7)
	move.b	d3,-(a7)
	move.l	a2,-(a7)
	move.l	$96C(a2),a0
	jsr	(a0)
	add.w	#$C,a7
	tst.b	d0
	beq.b	L648
L647
;            ctx->Color.SWmasking = GL_FALSE;
	clr.b	$21E0(a2)
	bra.b	L649
L648
;            ctx->Color.SWmasking = GL_TRUE;
	move.b	#1,$21E0(a2)
L649
	bra.b	L658
L650
;      if (ctx->Color.IndexMask==0xffffffff) 
	move.l	$21D8(a2),d0
	cmp.l	#-1,d0
	bne.b	L654
L651
;         if (ctx->Driver.IndexMask) 
	tst.l	$968(a2)
	beq.b	L653
L652
;            (void) (*ctx->Driver.IndexMask)( ctx, 0xffff
	move.l	#-1,-(a7)
	move.l	a2,-(a7)
	move.l	$968(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
L653
;         ctx->Color.SWmasking = GL_FALSE;
	clr.b	$21E0(a2)
	bra.b	L658
L654
;         if (ctx->Driver.IndexMask
	tst.l	$968(a2)
	beq.b	L657
L655
	move.l	$21D8(a2),-(a7)
	move.l	a2,-(a7)
	move.l	$968(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
	tst.b	d0
	beq.b	L657
L656
;            ctx->Color.SWmasking = GL_FALSE;
	clr.b	$21E0(a2)
	bra.b	L658
L657
;            ctx->Color.SWmasking = GL_TRUE;
	move.b	#1,$21E0(a2)
L658
	movem.l	(a7)+,d2-d4/a2
	rts

	SECTION "_update_fog_mode:0",CODE


;static void update_fog_mode( GLcontext *ctx )
_update_fog_mode
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L659
;   if (ctx->Fog.Enabled) 
	tst.b	$22DE(a2)
	beq.b	L669
L660
;      if (ctx->Texture.Enabled)
	move.l	a2,a0
	add.l	#$DEBA,a0
	tst.l	$8(a0)
	beq.b	L662
L661
;         ctx->FogMode = FOG_FRAGMENT;
	move.l	a2,a0
	add.l	#$E98A,a0
	move.l	#2,(a0)
	bra.b	L665
L662
;      else if (ctx->Hint.Fog == GL_NICEST)
	move.l	$2314(a2),d0
	cmp.l	#$1102,d0
	bne.b	L664
L663
;         ctx->FogMode = FOG_FRAGMENT;
	move.l	a2,a0
	add.l	#$E98A,a0
	move.l	#2,(a0)
	bra.b	L665
L664
;         ctx->FogMode = FOG_VERTEX;
	move.l	a2,a0
	add.l	#$E98A,a0
	move.l	#1,(a0)
L665
;      if (ctx->Driver.GetParameteri)
	tst.l	$980(a2)
	beq.b	L668
L666
;         if ((ctx->Driver.GetParameteri)( ctx, DD_HAVE_HARD
	pea	3.w
	move.l	a2,-(a7)
	move.l	$980(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
	tst.l	d0
	beq.b	L668
L667
;            ctx->FogMode = FOG_FRAGMENT;
	move.l	a2,a0
	add.l	#$E98A,a0
	move.l	#2,(a0)
L668
	bra.b	L670
L669
;      ctx->FogMode = FOG_NONE;
	move.l	a2,a0
	add.l	#$E98A,a0
	clr.l	(a0)
L670
	move.l	(a7)+,a2
	rts

	SECTION "_update_rasterflags:0",CODE


;static void update_rasterflags( GLcontext *ctx )
_update_rasterflags
	move.l	4(a7),a0
L671
;   ctx->RasterMask = 0;
	move.l	a0,a1
	add.l	#$E974,a1
	clr.l	(a1)
;   if (ctx->Color.AlphaEnabled)		
	tst.b	$21E6(a0)
	beq.b	L673
L672
;   if (ctx->Color.AlphaEnabled)		ct
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#1,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L673
;   if (ctx->Color.BlendEnabled)		
	tst.b	$21ED(a0)
	beq.b	L675
L674
;   if (ctx->Color.BlendEnabled)		ct
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#2,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L675
;   if (ctx->Depth.Test)			
	tst.b	$22A4(a0)
	beq.b	L677
L676
;   if (ctx->Depth.Test)			ctx->RasterMask 
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#4,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L677
;   if (ctx->FogMode==FOG_FRAGMENT)	
	move.l	a0,a1
	add.l	#$E98A,a1
	move.l	(a1),d0
	cmp.l	#2,d0
	bne.b	L679
L678
;   if (ctx->FogMode==FOG_FRAGMENT)
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$8,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L679
;   if (ctx->Color.SWLogicOpEnabled)	
	tst.b	$2214(a0)
	beq.b	L681
L680
;   if (ctx->Color.SWLogicOpEnabl
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$10,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L681
;   if (ctx->Scissor.Enabled)		
	move.l	a0,a1
	add.l	#$DE92,a1
	tst.b	(a1)
	beq.b	L683
L682
;   if (ctx->Scissor.Enabled)		ctx->Ras
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$20,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L683
;   if (ctx->Stencil.Enabled)		
	move.l	a0,a1
	add.l	#$DEA4,a1
	tst.b	(a1)
	beq.b	L685
L684
;   if (ctx->Stencil.Enabled)		ctx->Ras
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$40,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L685
;   if (ctx->Color.SWmasking)		
	tst.b	$21E0(a0)
	beq.b	L687
L686
;   if (ctx->Color.SWmasking)		ctx->Ras
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$80,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L687
;   if (ctx->Visual->FrontAlphaEnabled)	
	move.l	$8F8(a0),a1
	tst.b	$24(a1)
	beq.b	L689
L688
;   if (ctx->Visual->FrontAlph
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$100,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L689
;   if (ctx->Visual->BackAlphaEnabled)	
	move.l	$8F8(a0),a1
	tst.b	$25(a1)
	beq.b	L691
L690
;   if (ctx->Visual->BackAlphaE
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$100,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L691
;      if (ctx->Driver.Dither) {
	move.l	a0,a1
	add.l	#$E540,a1
	tst.l	(a1)
	bmi.b	L695
L692
	move.l	a0,a1
	add.l	#$E540,a1
	move.l	(a1),d0
	move.l	a0,a1
	add.l	#$E540,a1
	add.l	$8(a1),d0
	move.l	$8FC(a0),a1
	cmp.l	4(a1),d0
	bgt.b	L695
L693
	move.l	a0,a1
	add.l	#$E540,a1
	tst.l	4(a1)
	bmi.b	L695
L694
	move.l	a0,a1
	add.l	#$E540,a1
	move.l	4(a1),d0
	move.l	a0,a1
	add.l	#$E540,a1
	add.l	$C(a1),d0
	move.l	$8FC(a0),a1
	cmp.l	$8(a1),d0
	ble.b	L696
L695
;      ctx->RasterMask |= WINCLIP_BIT;
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$200,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L696
;   if (ctx->Color.DrawBuffer==GL_FRONT_AND_BACK) 
	move.l	$21E2(a0),d0
	cmp.l	#$408,d0
	bne.b	L698
L697
;      ctx->RasterMask |= FRONT_AND_BACK_BIT;
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$400,d0
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	d0,(a1)
L698
;   if (ctx->Color.DrawBuffer==GL_NONE) 
	tst.l	$21E2(a0)
	bne.b	L700
L699
;      ctx->RasterMask |= NO_DRAW_BIT;
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$800,d0
	add.l	#$E974,a0
	move.l	d0,(a0)
	bra.b	L706
L700
;   else if (ctx->Visual->RGBAflag && ctx->Color.ColorMask==0)
	move.l	$8F8(a0),a1
	tst.b	(a1)
	beq.b	L703
L701
	lea	$21DC(a0),a1
	cmp.w	#0,a1
	bne.b	L703
L702
;      ctx->RasterMask |= NO_DRAW_BIT;
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$800,d0
	add.l	#$E974,a0
	move.l	d0,(a0)
	bra.b	L706
L703
;   else if (!ctx->Visual->RGBAflag && ctx->Color.IndexMask==
	move.l	$8F8(a0),a1
	tst.b	(a1)
	bne.b	L706
L704
	tst.l	$21D8(a0)
	bne.b	L706
L705
;      ctx->RasterMask |= NO_DRAW_BIT;
	move.l	a0,a1
	add.l	#$E974,a1
	move.l	(a1),d0
	or.l	#$800,d0
	add.l	#$E974,a0
	move.l	d0,(a0)
L706
	rts

	SECTION "_update_clipmask:0",CODE


;static void update_clipmask(GLcontext *ctx)
_update_clipmask
	move.l	4(a7),a0
L707
;   ctx->ClipMask = 0;
	move.l	a0,a1
	add.l	#$E970,a1
	clr.l	(a1)
;   if (ctx->Texture.Enabled) 
	move.l	a0,a1
	add.l	#$DEBA,a1
	tst.l	$8(a1)
	beq.b	L709
L708
;      ctx->ClipMask |= CLIP_TEXTURE_BIT;
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	(a1),d0
	or.l	#$10,d0
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	d0,(a1)
L709
;   if (ctx->Light.ShadeModel==GL_SMOOTH) 
	lea	$2318(a0),a1
	add.l	#$8E08,a1
	move.l	(a1),d0
	cmp.l	#$1D01,d0
	bne	L716
L710
;      if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a0),a1
	tst.b	(a1)
	beq.b	L714
L711
;	 ctx->ClipMask |= CLIP_FCOLOR_BIT;
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	(a1),d0
	or.l	#1,d0
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	d0,(a1)
;	 if (ctx->Light.Model.TwoSide) 
	move.l	a0,a1
	add.l	#$AA28,a1
	tst.b	$11(a1)
	beq.b	L713
L712
;	    ctx->ClipMask |= CLIP_BCOLOR_BIT;
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	(a1),d0
	or.l	#2,d0
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	d0,(a1)
L713
	bra.b	L716
L714
;	 ctx->ClipMask |= CLIP_FINDEX_BIT;
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	(a1),d0
	or.l	#4,d0
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	d0,(a1)
;	 if (ctx->Light.Model.TwoSide) 
	move.l	a0,a1
	add.l	#$AA28,a1
	tst.b	$11(a1)
	beq.b	L716
L715
;	    ctx->ClipMask |= CLIP_BINDEX_BIT;
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	(a1),d0
	or.l	#$8,d0
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	d0,(a1)
L716
;   if (ctx->Texture.Enabled >= TEXTURE1_1D) 
	move.l	a0,a1
	add.l	#$DEBA,a1
	move.l	$8(a1),d0
	cmp.l	#$10,d0
	blo.b	L718
L717
;      ctx->ClipInterpFunc = gl_clip_interp_all;
	move.l	a0,a1
	add.l	#$E990,a1
	move.l	#_gl_clip_interp_all,(a1)
	bra.b	L723
L718
;      switch(ctx->ClipMask)
	move.l	a0,a1
	add.l	#$E970,a1
	move.l	(a1),d0
	cmp.l	#$10,d0
	beq.b	L720
	bhi.b	L724
	cmp.l	#1,d0
	beq.b	L721
	bra.b	L722
L724
	cmp.l	#$11,d0
	beq.b	L719
	bra.b	L722
;         
L719
;            ctx->ClipInterpFunc = gl_clip_interp_color_t
	move.l	a0,a1
	add.l	#$E990,a1
	move.l	#_gl_clip_interp_color_tex,(a1)
;            
	bra.b	L723
L720
;            ctx->ClipInterpFunc = gl_clip_interp_tex;
	move.l	a0,a1
	add.l	#$E990,a1
	move.l	#_gl_clip_interp_tex,(a1)
;            
	bra.b	L723
L721
;            ctx->ClipInterpFunc = gl_clip_interp_color;
	move.l	a0,a1
	add.l	#$E990,a1
	move.l	#_gl_clip_interp_color,(a1)
;            
	bra.b	L723
L722
;            ctx->ClipInterpFunc = gl_clip_interp_all;
	move.l	a0,a1
	add.l	#$E990,a1
	move.l	#_gl_clip_interp_all,(a1)
L723
	rts

	SECTION "_gl_update_state:0",CODE


;void gl_update_state( GLcontext *ctx )
	XDEF	_gl_update_state
_gl_update_state
	movem.l	d2/d3/a2,-(a7)
	move.l	$10(a7),a2
L725
;   if (ctx->NewState & NEW_RASTER_OPS) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#2,d0
	beq.b	L728
L726
;      update_pixel_logic(ctx);
	move.l	a2,-(a7)
	jsr	_update_pixel_logic
	addq.w	#4,a7
;      update_pixel_masking(ctx);
	move.l	a2,-(a7)
	jsr	_update_pixel_masking
	addq.w	#4,a7
;      update_fog_mode(ctx);
	move.l	a2,-(a7)
	jsr	_update_fog_mode
	addq.w	#4,a7
;      update_rasterflags(ctx);
	move.l	a2,-(a7)
	jsr	_update_rasterflags
	addq.w	#4,a7
;      if (ctx->Driver.Dither) 
	tst.l	$974(a2)
	beq.b	L728
L727
;         (*ctx->Driver.Dither)( ctx, ctx->Color.DitherFlag )
	move.b	$2215(a2),-(a7)
	move.l	a2,-(a7)
	move.l	$974(a2),a0
	jsr	(a0)
	addq.w	#6,a7
L728
;   if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING)) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#3,d0
	beq.b	L730
L729
;      update_clipmask(ctx);
	move.l	a2,-(a7)
	jsr	_update_clipmask
	addq.w	#4,a7
L730
;   if (ctx->NewState & NEW_LIGHTING) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#1,d0
	beq.b	L732
L731
;      gl_update_lighting(ctx);
	move.l	a2,-(a7)
	jsr	_gl_update_lighting
	addq.w	#4,a7
;      gl_set_color_function(ctx);
	move.l	a2,-(a7)
	jsr	_gl_set_color_function
	addq.w	#4,a7
L732
;   if (ctx->NewState & NEW_TEXTURING) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#4,d0
	beq.b	L734
L733
;      gl_update_texture_state(ctx);
	move.l	a2,-(a7)
	jsr	_gl_update_texture_state
	addq.w	#4,a7
L734
;   if (ctx->NewState & (NEW_LIGHTING | NEW_TEXTURING)) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#5,d0
	beq	L748
L735
;      GLboolean sphereGen = GL_FALSE;
	moveq	#0,d2
;      if (ctx->Texture.Enabled) 
	move.l	a2,a0
	add.l	#$DEBA,a0
	tst.l	$8(a0)
	beq	L744
L736
;         for (texSet=0;
	moveq	#0,d0
	bra	L743
L737
;            if ((ctx->Texture.Set[texSet].GenModeS==GL_S
	move.l	a2,a0
	add.l	#$DEC6,a0
	move.l	d0,d1
	muls.l	#$BC,d1
	move.l	$18(a0,d1.l),d1
	cmp.l	#$2402,d1
	bne.b	L739
L738
	move.l	a2,a0
	add.l	#$DEC6,a0
	move.l	d0,d1
	muls.l	#$BC,d1
	move.l	$14(a0,d1.l),d1
	and.l	#1,d1
	bne.b	L741
L739
	move.l	a2,a0
	add.l	#$DEC6,a0
	move.l	d0,d1
	muls.l	#$BC,d1
	move.l	$1C(a0,d1.l),d1
	cmp.l	#$2402,d1
	bne.b	L742
L740
	move.l	a2,a0
	add.l	#$DEC6,a0
	move.l	d0,d1
	muls.l	#$BC,d1
	move.l	$14(a0,d1.l),d1
	and.l	#2,d1
	beq.b	L742
L741
;               sphereGen = GL_TRUE;
	moveq	#1,d2
L742
	addq.l	#1,d0
L743
	cmp.l	#2,d0
	blo	L737
L744
;      if (ctx->Light.Enabled || sphereGen) 
	lea	$2318(a2),a0
	add.l	#$8E06,a0
	tst.b	(a0)
	bne.b	L746
L745
	tst.b	d2
	beq.b	L747
L746
;         ctx->NeedNormals = GL_TRUE;
	move.l	a2,a0
	add.l	#$E986,a0
	move.b	#1,(a0)
	bra.b	L748
L747
;         ctx->NeedNormals = GL_FALSE;
	move.l	a2,a0
	add.l	#$E986,a0
	clr.b	(a0)
L748
;   if (ctx->NewState & NEW_RASTER_OPS) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#2,d0
	beq.b	L756
L749
;      if (ctx->Fog.Enabled ||
	tst.b	$22DE(a2)
	bne.b	L754
L750
	move.l	a2,a0
	add.l	#$DEBA,a0
	tst.l	$8(a0)
	bne.b	L754
L751
	tst.b	$21ED(a2)
	bne.b	L754
L752
	tst.b	$21E0(a2)
	bne.b	L754
L753
	tst.b	$2214(a2)
	beq.b	L755
L754
;         ctx->MutablePixels = GL_TRUE;
	move.l	a2,a0
	add.l	#$E987,a0
	move.b	#1,(a0)
	bra.b	L756
L755
;         ctx->MutablePixels = GL_FALSE;
	move.l	a2,a0
	add.l	#$E987,a0
	clr.b	(a0)
L756
;   if (ctx->NewState & (NEW_RASTER_OPS | NEW_LIGHTING)) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#3,d0
	beq.b	L766
L757
;      if (ctx->Light.ShadeModel==GL_SMOOTH ||
	lea	$2318(a2),a0
	add.l	#$8E08,a0
	move.l	(a0),d0
	cmp.l	#$1D01,d0
	beq.b	L764
L758
	lea	$2318(a2),a0
	add.l	#$8E06,a0
	tst.b	(a0)
	bne.b	L764
L759
	tst.b	$22DE(a2)
	bne.b	L764
L760
	move.l	a2,a0
	add.l	#$DEBA,a0
	tst.l	$8(a0)
	bne.b	L764
L761
	tst.b	$21ED(a2)
	bne.b	L764
L762
	tst.b	$21E0(a2)
	bne.b	L764
L763
	tst.b	$2214(a2)
	beq.b	L765
L764
;         ctx->MonoPixels = GL_FALSE;
	move.l	a2,a0
	add.l	#$E988,a0
	clr.b	(a0)
	bra.b	L766
L765
;         ctx->MonoPixels = GL_TRUE;
	move.l	a2,a0
	add.l	#$E988,a0
	move.b	#1,(a0)
L766
;   if (ctx->NewState & NEW_POLYGON) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#$8,d0
	beq	L779
L767
;      ctx->Polygon.CullBits = 0;
	move.l	a2,a0
	add.l	#$DE00,a0
	clr.l	(a0)
;      if (ctx->Polygon.CullFlag) 
	move.l	a2,a0
	add.l	#$DDEE,a0
	tst.b	$D(a0)
	beq	L774
L768
;         if (ctx->Polygon.CullFaceMode==GL_FRONT ||
	move.l	a2,a0
	add.l	#$DDEE,a0
	move.l	$E(a0),d0
	cmp.l	#$404,d0
	beq.b	L770
L769
	move.l	a2,a0
	add.l	#$DDEE,a0
	move.l	$E(a0),d0
	cmp.l	#$408,d0
	bne.b	L771
L770
;            ctx->Polygon.CullBits |= 1;
	move.l	a2,a0
	add.l	#$DE00,a0
	move.l	(a0),d0
	or.l	#1,d0
	move.l	a2,a0
	add.l	#$DE00,a0
	move.l	d0,(a0)
L771
;         if (ctx->Polygon.CullFaceMode==GL_BACK ||
	move.l	a2,a0
	add.l	#$DDEE,a0
	move.l	$E(a0),d0
	cmp.l	#$405,d0
	beq.b	L773
L772
	move.l	a2,a0
	add.l	#$DDEE,a0
	move.l	$E(a0),d0
	cmp.l	#$408,d0
	bne.b	L774
L773
;            ctx->Polygon.CullBits |= 2;
	move.l	a2,a0
	add.l	#$DE00,a0
	move.l	(a0),d0
	or.l	#2,d0
	move.l	a2,a0
	add.l	#$DE00,a0
	move.l	d0,(a0)
L774
;      ctx->Polygon.OffsetAny = ctx->Polygon.OffsetPoint ||
	moveq	#1,d0
	move.l	a2,a0
	add.l	#$DDEE,a0
	tst.b	$20(a0)
	bne.b	L778
L775
	move.l	a2,a0
	add.l	#$DDEE,a0
	tst.b	$21(a0)
	bne.b	L778
L776
	move.l	a2,a0
	add.l	#$DDEE,a0
	tst.b	$22(a0)
	bne.b	L778
L777
	moveq	#0,d0
L778
	move.l	a2,a0
	add.l	#$DE11,a0
	move.b	d0,(a0)
;      ctx->PointZoffset   = 0.0;
	move.l	a2,a0
	add.l	#$E982,a0
	clr.l	(a0)
;      ctx->LineZoffset    = 0.0;
	move.l	a2,a0
	add.l	#$E97E,a0
	clr.l	(a0)
;      ctx->PolygonZoffset = 0.0;
	move.l	a2,a0
	add.l	#$E97A,a0
	clr.l	(a0)
L779
;   if (ctx->NewState & (NEW_POLYGON | NEW_LIGHTING)) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#$9,d0
	beq.b	L787
L780
;      if (   ctx->Polygon.Unfilled
	move.l	a2,a0
	add.l	#$DDEE,a0
	tst.b	$C(a0)
	bne.b	L785
L781
	move.l	a2,a0
	add.l	#$DDEE,a0
	tst.b	$23(a0)
	bne.b	L785
L782
	move.l	a2,a0
	add.l	#$DDEE,a0
	tst.b	$D(a0)
	bne.b	L785
L783
	move.l	a2,a0
	add.l	#$AA28,a0
	tst.b	$11(a0)
	bne.b	L785
L784
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C00,d0
	beq.b	L786
L785
;         ctx->DirectTriangles = GL_FALSE;
	move.l	a2,a0
	add.l	#$E979,a0
	clr.b	(a0)
	bra.b	L787
L786
;         ctx->DirectTriangles = GL_TRUE;
	move.l	a2,a0
	add.l	#$E979,a0
	move.b	#1,(a0)
L787
;   ctx->Buffer->Xmin = 0;
	move.l	$8FC(a2),a0
	clr.l	$24(a0)
;   ctx->Buffer->Ymin = 0;
	move.l	$8FC(a2),a0
	clr.l	$2C(a0)
;   ctx->Buffer->Xmax = ctx->Buffer->Width-1;
	move.l	$8FC(a2),a0
	move.l	4(a0),d0
	subq.l	#1,d0
	move.l	$8FC(a2),a0
	move.l	d0,$28(a0)
;   ctx->Buffer->Ymax = ctx->Buffer->Height-1;
	move.l	$8FC(a2),a0
	move.l	$8(a0),d0
	subq.l	#1,d0
	move.l	$8FC(a2),a0
	move.l	d0,$30(a0)
;   if (ctx->Scissor.Enabled) 
	move.l	a2,a0
	add.l	#$DE92,a0
	tst.b	(a0)
	beq	L796
L788
;      if (ctx->Scissor.X > ctx->Buffer->Xmin) 
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	2(a0),d1
	move.l	$8FC(a2),a0
	cmp.l	$24(a0),d1
	ble.b	L790
L789
;         ctx->Buffer->Xmin = ctx->Scissor.X;
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	2(a0),d0
	move.l	$8FC(a2),a0
	move.l	d0,$24(a0)
L790
;      if (ctx->Scissor.Y > ctx->Buffer->Ymin) 
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	6(a0),d1
	move.l	$8FC(a2),a0
	cmp.l	$2C(a0),d1
	ble.b	L792
L791
;         ctx->Buffer->Ymin = ctx->Scissor.Y;
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	6(a0),d0
	move.l	$8FC(a2),a0
	move.l	d0,$2C(a0)
L792
;      if (ctx->Scissor.X + ctx->Scissor.Width - 1 < ctx->Buffe
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	2(a0),d0
	move.l	a2,a0
	add.l	#$DE92,a0
	add.l	$A(a0),d0
	subq.l	#1,d0
	move.l	$8FC(a2),a0
	cmp.l	$28(a0),d0
	bge.b	L794
L793
;         ctx->Buffer->Xmax = ctx->Scissor.X + ctx->Scissor.
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	2(a0),d0
	move.l	a2,a0
	add.l	#$DE92,a0
	add.l	$A(a0),d0
	subq.l	#1,d0
	move.l	$8FC(a2),a0
	move.l	d0,$28(a0)
L794
;      if (ctx->Scissor.Y + ctx->Scissor.Height - 1 < ctx->Buff
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	6(a0),d0
	move.l	a2,a0
	add.l	#$DE92,a0
	add.l	$E(a0),d0
	subq.l	#1,d0
	move.l	$8FC(a2),a0
	cmp.l	$30(a0),d0
	bge.b	L796
L795
;         ctx->Buffer->Ymax = ctx->Scissor.Y + ctx->Scissor.
	move.l	a2,a0
	add.l	#$DE92,a0
	move.l	6(a0),d0
	move.l	a2,a0
	add.l	#$DE92,a0
	add.l	$E(a0),d0
	subq.l	#1,d0
	move.l	$8FC(a2),a0
	move.l	d0,$30(a0)
L796
;   if (ctx->NewState & NEW_RASTER_OPS) 
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	and.l	#2,d0
	beq	L805
L797
;      ctx->Driver.AllocDepthBuffer = gl_alloc_depth_buffer;
	move.l	#_gl_alloc_depth_buffer,$984(a2)
;      if (ctx->Depth.Mask) 
	tst.b	$22A5(a2)
	beq.b	L803
L798
;         switch (ctx->Depth.Func)
	move.l	$229C(a2),d0
	cmp.l	#$201,d0
	beq.b	L799
	cmp.l	#$204,d0
	beq.b	L800
	bra.b	L801
;            
L799
;               ctx->Driver.DepthTestSpan = gl_depth_t
	move.l	#_gl_depth_test_span_less,$988(a2)
;               ctx->Driver.DepthTestPixels = gl_depth
	move.l	#_gl_depth_test_pixels_less,$98C(a2)
;               
	bra.b	L802
L800
;               ctx->Driver.DepthTestSpan = gl_depth_t
	move.l	#_gl_depth_test_span_greater,$988(a2)
;               ctx->Driver.DepthTestPixels = gl_depth
	move.l	#_gl_depth_test_pixels_greater,$98C(a2)
;               
	bra.b	L802
L801
;               ctx->Driver.DepthTestSpan = gl_depth_t
	move.l	#_gl_depth_test_span_generic,$988(a2)
;               ctx->Driver.DepthTestPixels = gl_depth
	move.l	#_gl_depth_test_pixels_generic,$98C(a2)
L802
	bra.b	L804
L803
;         ctx->Driver.DepthTestSpan = gl_depth_test_span_gen
	move.l	#_gl_depth_test_span_generic,$988(a2)
;         ctx->Driver.DepthTestPixels = gl_depth_test_pixels
	move.l	#_gl_depth_test_pixels_generic,$98C(a2)
L804
;      ctx->Driver.ReadDepthSpanFloat = gl_read_depth_span_floa
	move.l	#_gl_read_depth_span_float,$990(a2)
;      ctx->Driver.ReadDepthSpanInt = gl_read_depth_span_int;
	move.l	#_gl_read_depth_span_int,$994(a2)
L805
;   ctx->Driver.PointsFunc = NULL;
	clr.l	$998(a2)
;   ctx->Driver.LineFunc = NULL;
	clr.l	$99C(a2)
;   ctx->Driver.TriangleFunc = NULL;
	clr.l	$9A0(a2)
;   ctx->Driver.QuadFunc = NULL;
	clr.l	$9A4(a2)
;   ctx->Driver.RectFunc = NULL;
	clr.l	$9A8(a2)
;   (*ctx->Driver.UpdateState)(ctx);
	move.l	a2,-(a7)
	move.l	$904(a2),a0
	jsr	(a0)
	addq.w	#4,a7
;   gl_set_point_function(ctx);
	move.l	a2,-(a7)
	jsr	_gl_set_point_function
	addq.w	#4,a7
;   gl_set_line_function(ctx);
	move.l	a2,-(a7)
	jsr	_gl_set_line_function
	addq.w	#4,a7
;   gl_set_triangle_function(ctx);
	move.l	a2,-(a7)
	jsr	_gl_set_triangle_function
	addq.w	#4,a7
;   gl_set_quad_function(ctx);
	move.l	a2,-(a7)
	jsr	_gl_set_quad_function
	addq.w	#4,a7
;   gl_set_vertex_function(ctx);
	move.l	a2,-(a7)
	jsr	_gl_set_vertex_function
	addq.w	#4,a7
;   ctx->NewState = 0;
	move.l	a2,a0
	add.l	#$E960,a0
	clr.l	(a0)
	movem.l	(a7)+,d2/d3/a2
	rts

	END
