
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/pb.c
	mc68030
	mc68881
	XREF	_gl_texture_pixels
	XREF	_gl_depth_stencil_pixels
	XREF	_gl_stencil_pixels
	XREF	_gl_mask_index_pixels
	XREF	_gl_mask_rgba_pixels
	XREF	_gl_logicop_rgba_pixels
	XREF	_gl_logicop_ci_pixels
	XREF	_gl_fog_ci_pixels
	XREF	_gl_fog_rgba_pixels
	XREF	_gl_blend_pixels
	XREF	_gl_write_mono_alpha_pixels
	XREF	_gl_write_alpha_pixels
	XREF	_gl_alpha_test
	XREF	_q_memcpy
	XREF	_calloc

	SECTION "_gl_alloc_pb:0",CODE


;struct pixel_buffer *gl_alloc_pb(void)
	XDEF	_gl_alloc_pb
_gl_alloc_pb
L71
;   pb = (struct pixel_buffer *) calloc(sizeof(struct pixel_buffer)
	pea	1.w
	move.l	#$27D9E,-(a7)
	jsr	_calloc
	addq.w	#$8,a7
	move.l	d0,a1
;   if (pb) 
	cmp.w	#0,a1
	beq.b	L75
L72
;      pb->primitive = GL_BITMAP;
	move.l	a1,a0
	add.l	#$27D9A,a0
	move.l	#$1A00,(a0)
;      for (i=0;
	moveq	#0,d0
	bra.b	L74
L73
;	 pb->lambda[i] = 0.0;
	move.l	a1,a0
	add.l	#$23280,a0
	clr.l	0(a0,d0.l*4)
	addq.l	#1,d0
L74
	cmp.l	#$12C0,d0
	blt.b	L73
L75
	move.l	a1,d0
	rts

	SECTION "_gl_flush_pb:0",CODE

	rts

;void gl_flush_pb( GLcontext *ctx )
	XDEF	_gl_flush_pb
_gl_flush_pb
L188	EQU	-$5DF4
	link	a5,#L188
	movem.l	d2-d7/a2-a4,-(a7)
	move.l	$8(a5),a4
L76
;   struct pixel_buffer* PB = ctx->PB;
	move.l	a4,a0
	add.l	#$E998,a0
	move.l	(a0),a2
;   if (PB->count==0)  
	move.l	a2,a0
	add.l	#$27D94,a0
	tst.l	(a0)
	bne.b	L78
L77
;   if (PB->count==0)  goto 
	bra	L187
L78
;      GLint xmin = ctx->Buffer->Xmin;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$24(a0),-$5DC8(a5)
;      GLint xmax = ctx->Buffer->Xmax;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$28(a0),d7
;      GLint ymin = ctx->Buffer->Ymin;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$2C(a0),d5
;      GLint ymax = ctx->Buffer->Ymax;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$30(a0),d4
;      GLint *x = PB->x;
	move.l	a2,a1
;      GLint *y = PB->y;
	lea	$4B00(a2),a0
;      GLuint i, n = PB->count;
	move.l	a2,a3
	add.l	#$27D94,a3
	move.l	(a3),d3
;      for (i=0;
	moveq	#0,d1
	bra.b	L80
L79
;	 mask[i] = (x[i]>=xmin) & (x[i]<=xmax) & (y[i]>=ymin) & (y[i]<=ym
	move.l	d1,d0
	asl.l	#2,d0
	add.l	a1,d0
	move.l	d0,a3
	move.l	(a3),d0
	cmp.l	-$5DC8(a5),d0
	sge	d0
	and.l	#1,d0
	move.l	d1,d2
	asl.l	#2,d2
	add.l	a1,d2
	move.l	d2,a3
	move.l	(a3),d2
	cmp.l	d7,d2
	sle	d2
	and.l	#1,d2
	and.l	d2,d0
	move.l	d1,d2
	asl.l	#2,d2
	add.l	a0,d2
	move.l	d2,a3
	move.l	(a3),d2
	cmp.l	d5,d2
	sge	d2
	and.l	#1,d2
	and.l	d2,d0
	move.l	d1,d2
	asl.l	#2,d2
	add.l	a0,d2
	move.l	d2,a3
	move.l	(a3),d2
	cmp.l	d4,d2
	sle	d2
	and.l	#1,d2
	and.l	d2,d0
	lea	-$12C4(a5),a3
	move.l	d1,d2
	add.l	a3,d2
	move.l	d2,a3
	move.b	d0,(a3)
	addq.l	#1,d1
L80
	cmp.l	d3,d1
	blo.b	L79
L81
;   if (ctx->Visual->RGBAflag) 
	move.l	a4,a1
	move.l	$8F8(a1),a0
	tst.b	(a0)
	beq	L146
L82
;      if (PB->mono && ctx->MutablePixels) 
	move.l	a2,a0
	add.l	#$27D98,a0
	tst.b	(a0)
	beq	L87
L83
	move.l	a4,a0
	add.l	#$E987,a0
	tst.b	(a0)
	beq	L87
L84
;	 for (i=0;
	moveq	#0,d0
	bra.b	L86
L85
;	    PB->rgba[i][RCOMP] = PB->color[RCOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	3(a0),d1
	move.l	a2,a0
	add.l	#$BB80,a0
	move.b	d1,0(a0,d0.l*4)
;	    PB->rgba[i][GCOMP] = PB->color[GCOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	7(a0),d1
	move.l	a2,a0
	add.l	#$BB80,a0
	lea	0(a0,d0.l*4),a0
	move.b	d1,1(a0)
;	    PB->rgba[i][BCOMP] = PB->color[BCOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	$B(a0),d1
	move.l	a2,a0
	add.l	#$BB80,a0
	lea	0(a0,d0.l*4),a0
	move.b	d1,2(a0)
;	    PB->rgba[i][ACOMP] = PB->color[ACOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	$F(a0),d1
	move.l	a2,a0
	add.l	#$BB80,a0
	lea	0(a0,d0.l*4),a0
	move.b	d1,3(a0)
	addq.l	#1,d0
L86
	move.l	a2,a0
	add.l	#$27D94,a0
	cmp.l	(a0),d0
	blo.b	L85
L87
;      if (ctx->MutablePixels || !PB->mono) 
	move.l	a4,a0
	add.l	#$E987,a0
	tst.b	(a0)
	bne.b	L89
L88
	move.l	a2,a0
	add.l	#$27D98,a0
	tst.b	(a0)
	bne	L128
L89
;	 if (ctx->Texture.Enabled) 
	move.l	a4,a0
	add.l	#$DEBA,a0
	tst.l	$8(a0)
	beq.b	L91
L90
;	    gl_texture_pixels( ctx, 0,
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$23280,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$1E780,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$19C80,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$15180,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	clr.l	-(a7)
	move.l	a4,-(a7)
	jsr	_gl_texture_pixels
	add.w	#$20,a7
L91
;	 if (ctx->Fog.Enabled
	tst.b	$22DE(a4)
	beq.b	L96
L92
	move.l	$2314(a4),d0
	cmp.l	#$1102,d0
	beq.b	L95
L93
	move.l	a2,a0
	add.l	#$27D9A,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L95
L94
	move.l	a4,a0
	add.l	#$DEBA,a0
	tst.l	$8(a0)
	beq.b	L96
L95
;	    gl_fog_rgba_pixels( ctx, PB->count, PB->z, PB->rgba );
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_fog_rgba_pixels
	add.w	#$10,a7
L96
;	 if (ctx->Color.AlphaEnabled) 
	tst.b	$21E6(a4)
	beq.b	L99
L97
;	    if (gl_alpha_test( ctx, PB->count, (CONST GLubyte(*)[4])PB
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_alpha_test
	add.w	#$10,a7
	tst.l	d0
	bne.b	L99
L98
;	       goto 
	bra	L187
L99
;	 if (ctx->Stencil.Enabled) 
	move.l	a4,a0
	add.l	#$DEA4,a0
	tst.b	(a0)
	beq.b	L103
L100
;	    if (gl_stencil_pixels( ctx, PB->count, PB->x, PB->y, mask )
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_stencil_pixels
	add.w	#$14,a7
	tst.l	d0
	bne.b	L102
L101
;	       goto 
	bra	L187
L102
;	    gl_depth_stencil_pixels( ctx, PB->count, PB->x, PB->y, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_depth_stencil_pixels
	add.w	#$18,a7
	bra.b	L105
L103
;	 else if (ctx->Depth.Test) 
	tst.b	$22A4(a4)
	beq.b	L105
L104
;	    (*ctx->Driver.DepthTestPixels)( ctx, PB->count, PB->x, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$98C(a4),a0
	jsr	(a0)
	add.w	#$18,a7
L105
;	 if (ctx->RasterMask & NO_DRAW_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$800,d0
	beq.b	L107
L106
;	    goto 
	bra	L187
L107
;	 if (ctx->RasterMask & FRONT_AND_BACK_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$400,d0
	beq.b	L109
L108
;( saved, PB->rgba
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	pea	-$5DC4(a5)
	jsr	_q_memcpy
	add.w	#$C,a7
L109
;	 if (ctx->Color.SWLogicOpEnabled) 
	tst.b	$2214(a4)
	beq.b	L111
L110
;	    gl_logicop_rgba_pixels( ctx, PB->count, PB->x, PB->y,
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_logicop_rgba_pixels
	add.w	#$18,a7
	bra.b	L113
L111
;	 else if (ctx->Color.BlendEnabled) 
	tst.b	$21ED(a4)
	beq.b	L113
L112
;	    gl_blend_pixels( ctx, PB->count, PB->x, PB->y, PB->rgba, m
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_blend_pixels
	add.w	#$18,a7
L113
;	 if (ctx->Color.SWmasking) 
	tst.b	$21E0(a4)
	beq.b	L115
L114
;	    gl_mask_rgba_pixels(ctx, PB->count, PB->x, PB->y, PB->rgba
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_mask_rgba_pixels
	add.w	#$18,a7
L115
;	 (*ctx->Driver.WriteRGBAPixels)( ctx, PB->count, PB->x, PB->y,
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$930(a4),a0
	jsr	(a0)
	add.w	#$18,a7
;	 if (ctx->RasterMask & ALPHABUF_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$100,d0
	beq.b	L117
L116
;	    gl_write_alpha_pixels( ctx, PB->count, PB->x, PB->y, (CONS
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_write_alpha_pixels
	add.w	#$18,a7
L117
;	 if (ctx->RasterMask & FRONT_AND_BACK_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$400,d0
	beq	L127
L118
;	    (*ctx->Driver.SetBuffer)( ctx, GL_BACK );
	pea	$405.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
;	    if (ctx->Color.SWLogicOpEnabled) 
	tst.b	$2214(a4)
	beq.b	L120
L119
;	       gl_logicop_rgba_pixels( ctx, PB->count, PB->x, PB->y
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_logicop_rgba_pixels
	add.w	#$18,a7
	bra.b	L122
L120
;	    else if (ctx->Color.BlendEnabled) 
	tst.b	$21ED(a4)
	beq.b	L122
L121
;	       gl_blend_pixels( ctx, PB->count, PB->x, PB->y, saved
	pea	-$12C4(a5)
	pea	-$5DC4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_blend_pixels
	add.w	#$18,a7
L122
;	    if (ctx->Color.SWmasking) 
	tst.b	$21E0(a4)
	beq.b	L124
L123
;	       gl_mask_rgba_pixels(ctx, PB->count, PB->x, PB->y, sa
	pea	-$12C4(a5)
	pea	-$5DC4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_mask_rgba_pixels
	add.w	#$18,a7
L124
;	    (*ctx->Driver.WriteRGBAPixels)( ctx, PB->count, PB->x, PB-
	pea	-$12C4(a5)
	pea	-$5DC4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$930(a4),a0
	jsr	(a0)
	add.w	#$18,a7
;	    if (ctx->RasterMask & ALPHABUF_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$100,d0
	beq.b	L126
L125
;	       ctx->Buffer->Alpha = ctx->Buffer->BackAlpha;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$1C(a0),a1
	move.l	a4,a3
	move.l	$8FC(a3),a0
	move.l	a1,$20(a0)
;	       gl_write_alpha_pixels( ctx, PB->count, PB->x, PB->y,
	pea	-$12C4(a5)
	pea	-$5DC4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_write_alpha_pixels
	add.w	#$18,a7
;	       ctx->Buffer->Alpha = ctx->Buffer->FrontAlpha;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$18(a0),a1
	move.l	a4,a3
	move.l	$8FC(a3),a0
	move.l	a1,$20(a0)
L126
;	    (*ctx->Driver.SetBuffer)( ctx, GL_FRONT );
	pea	$404.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
L127
	bra	L145
L128
;	 if (ctx->Color.AlphaEnabled) 
	tst.b	$21E6(a4)
	beq.b	L131
L129
;	    if (gl_alpha_test( ctx, PB->count, (CONST GLubyte(*)[4])PB
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$BB80,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_alpha_test
	add.w	#$10,a7
	tst.l	d0
	bne.b	L131
L130
;	       goto 
	bra	L187
L131
;	 if (ctx->Stencil.Enabled) 
	move.l	a4,a0
	add.l	#$DEA4,a0
	tst.b	(a0)
	beq.b	L135
L132
;	    if (gl_stencil_pixels( ctx, PB->count, PB->x, PB->y, mask )
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_stencil_pixels
	add.w	#$14,a7
	tst.l	d0
	bne.b	L134
L133
;	       goto 
	bra	L187
L134
;	    gl_depth_stencil_pixels( ctx, PB->count, PB->x, PB->y, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_depth_stencil_pixels
	add.w	#$18,a7
	bra.b	L137
L135
;	 else if (ctx->Depth.Test) 
	tst.b	$22A4(a4)
	beq.b	L137
L136
;	    (*ctx->Driver.DepthTestPixels)( ctx, PB->count, PB->x, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$98C(a4),a0
	jsr	(a0)
	add.w	#$18,a7
L137
;	 if (ctx->RasterMask & NO_DRAW_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$800,d0
	beq.b	L139
L138
;	    goto 
	bra	L187
L139
;	    red   = PB->color[RCOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	3(a0),d3
;	    green = PB->color[GCOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	7(a0),d2
;	    blue  = PB->color[BCOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	$B(a0),d1
;	    alpha = PB->color[ACOMP];
	move.l	a2,a0
	add.l	#$27D80,a0
;	    (*ctx->Driver.Color)( ctx, red, green, blue, alpha );
	move.b	$F(a0),-(a7)
	move.b	d1,-(a7)
	move.b	d2,-(a7)
	move.b	d3,-(a7)
	move.l	a4,-(a7)
	move.l	$918(a4),a0
	jsr	(a0)
	add.w	#$C,a7
;	 (*ctx->Driver.WriteMonoRGBAPixels)( ctx, PB->count, PB->x, PB->y
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$934(a4),a0
	jsr	(a0)
	add.w	#$14,a7
;	 if (ctx->RasterMask & ALPHABUF_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$100,d0
	beq.b	L141
L140
;	    gl_write_mono_alpha_pixels( ctx, PB->count, PB->x, PB->y,
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	$F(a0),-(a7)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_write_mono_alpha_pixels
	add.w	#$16,a7
L141
;	 if (ctx->RasterMask & FRONT_AND_BACK_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$400,d0
	beq	L145
L142
;	    (*ctx->Driver.SetBuffer)( ctx, GL_BACK );
	pea	$405.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
;	    (*ctx->Driver.WriteMonoRGBAPixels)( ctx, PB->count, PB->x,
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$934(a4),a0
	jsr	(a0)
	add.w	#$14,a7
;	    if (ctx->RasterMask & ALPHABUF_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$100,d0
	beq.b	L144
L143
;	       ctx->Buffer->Alpha = ctx->Buffer->BackAlpha;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$1C(a0),a1
	move.l	a4,a3
	move.l	$8FC(a3),a0
	move.l	a1,$20(a0)
;	       gl_write_mono_alpha_pixels( ctx, PB->count, PB->x, P
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$27D80,a0
	move.b	$F(a0),-(a7)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_write_mono_alpha_pixels
	add.w	#$16,a7
;	       ctx->Buffer->Alpha = ctx->Buffer->FrontAlpha;
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$18(a0),a1
	move.l	a4,a3
	move.l	$8FC(a3),a0
	move.l	a1,$20(a0)
L144
;	    (*ctx->Driver.SetBuffer)( ctx, GL_FRONT );
	pea	$404.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
L145
	bra	L187
L146
;      if (PB->mono && ctx->MutablePixels) 
	move.l	a2,a0
	add.l	#$27D98,a0
	tst.b	(a0)
	beq.b	L150
L147
	move.l	a4,a0
	add.l	#$E987,a0
	tst.b	(a0)
	beq.b	L150
L148
;	 GLuint n = PB->count
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),d0
;	 GLuint n = PB->count, indx = PB->index;
	move.l	a2,a0
	add.l	#$27D90,a0
	move.l	(a0),d1
;	 GLuint *pbindex = PB->i;
	move.l	a2,a0
	add.l	#$10680,a0
	lea	(a0),a0
;	 
L149
;	    *pbindex++ = indx;
	move.l	d1,(a0)+
;	    n--;
	subq.l	#1,d0
	tst.l	d0
	bne.b	L149
L150
;      if (ctx->MutablePixels || !PB->mono) 
	move.l	a4,a0
	add.l	#$E987,a0
	tst.b	(a0)
	bne.b	L152
L151
	move.l	a2,a0
	add.l	#$27D98,a0
	tst.b	(a0)
	bne	L177
L152
;	 GLuint *isave = (GLuint*)saved;
	lea	-$5DC4(a5),a0
	move.l	a0,a3
;	 if (ctx->Fog.Enabled
	tst.b	$22DE(a4)
	beq.b	L156
L153
	move.l	$2314(a4),d0
	cmp.l	#$1102,d0
	beq.b	L155
L154
	move.l	a2,a0
	add.l	#$27D9A,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	bne.b	L156
L155
;	    gl_fog_ci_pixels( ctx, PB->count, PB->z, PB->i );
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_fog_ci_pixels
	add.w	#$10,a7
L156
;	 if (ctx->Stencil.Enabled) 
	move.l	a4,a0
	add.l	#$DEA4,a0
	tst.b	(a0)
	beq.b	L160
L157
;	    if (gl_stencil_pixels( ctx, PB->count, PB->x, PB->y, mask )
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_stencil_pixels
	add.w	#$14,a7
	tst.l	d0
	bne.b	L159
L158
;	       goto 
	bra	L187
L159
;	    gl_depth_stencil_pixels( ctx, PB->count, PB->x, PB->y, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_depth_stencil_pixels
	add.w	#$18,a7
	bra.b	L162
L160
;	 else if (ctx->Depth.Test) 
	tst.b	$22A4(a4)
	beq.b	L162
L161
;	    (*ctx->Driver.DepthTestPixels)( ctx, PB->count, PB->x, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$98C(a4),a0
	jsr	(a0)
	add.w	#$18,a7
L162
;	 if (ctx->RasterMask & NO_DRAW_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$800,d0
	beq.b	L164
L163
;	    goto 
	bra	L187
L164
;	 if (ctx->RasterMask & FRONT_AND_BACK_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$400,d0
	beq.b	L166
L165
;  MEMCPY( isave, 
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	move.l	a3,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
L166
;	 if (ctx->Color.SWLogicOpEnabled) 
	tst.b	$2214(a4)
	beq.b	L168
L167
;	    gl_logicop_ci_pixels( ctx, PB->count, PB->x, PB->y, PB->i,
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_logicop_ci_pixels
	add.w	#$18,a7
L168
;	 if (ctx->Color.SWmasking) 
	tst.b	$21E0(a4)
	beq.b	L170
L169
;	    gl_mask_index_pixels( ctx, PB->count, PB->x, PB->y, PB->i,
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_mask_index_pixels
	add.w	#$18,a7
L170
;	 (*ctx->Driver.WriteCI32Pixels)( ctx, PB->count, PB->x, PB->y,
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$944(a4),a0
	jsr	(a0)
	add.w	#$18,a7
;	 if (ctx->RasterMask & FRONT_AND_BACK_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$400,d0
	beq	L176
L171
;	    (*ctx->Driver.SetBuffer)( ctx, GL_BACK );
	pea	$405.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
;  MEMCPY( PB->i, 
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	move.l	a3,-(a7)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	jsr	_q_memcpy
	add.w	#$C,a7
;	    if (ctx->Color.SWLogicOpEnabled) 
	tst.b	$2214(a4)
	beq.b	L173
L172
;	       gl_logicop_ci_pixels( ctx, PB->count, PB->x, PB->y, 
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_logicop_ci_pixels
	add.w	#$18,a7
L173
;	    if (ctx->Color.SWmasking) 
	tst.b	$21E0(a4)
	beq.b	L175
L174
;	       gl_mask_index_pixels( ctx, PB->count, PB->x, PB->y,
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_mask_index_pixels
	add.w	#$18,a7
L175
;	    (*ctx->Driver.WriteCI32Pixels)( ctx, PB->count, PB->x, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$10680,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$944(a4),a0
	jsr	(a0)
	add.w	#$18,a7
;	    (*ctx->Driver.SetBuffer)( ctx, GL_FRONT );
	pea	$404.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
L176
	bra	L187
L177
;	 if (ctx->Stencil.Enabled) 
	move.l	a4,a0
	add.l	#$DEA4,a0
	tst.b	(a0)
	beq.b	L181
L178
;	    if (gl_stencil_pixels( ctx, PB->count, PB->x, PB->y, mask )
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_stencil_pixels
	add.w	#$14,a7
	tst.l	d0
	bne.b	L180
L179
;	       goto 
	bra	L187
L180
;	    gl_depth_stencil_pixels( ctx, PB->count, PB->x, PB->y, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	jsr	_gl_depth_stencil_pixels
	add.w	#$18,a7
	bra.b	L183
L181
;	 else if (ctx->Depth.Test) 
	tst.b	$22A4(a4)
	beq.b	L183
L182
;	    (*ctx->Driver.DepthTestPixels)( ctx, PB->count, PB->x, PB-
	pea	-$12C4(a5)
	move.l	a2,a0
	add.l	#$9600,a0
	pea	(a0)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$98C(a4),a0
	jsr	(a0)
	add.w	#$18,a7
L183
;	 if (ctx->RasterMask & NO_DRAW_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$800,d0
	beq.b	L185
L184
;	    goto 
	bra	L187
L185
;	 (*ctx->Driver.Index)( ctx, PB->index );
	move.l	a2,a0
	add.l	#$27D90,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$914(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
;	 (*ctx->Driver.WriteMonoCIPixels)( ctx, PB->count, PB->x, PB->y, 
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$948(a4),a0
	jsr	(a0)
	add.w	#$14,a7
;	 if (ctx->RasterMask & FRONT_AND_BACK_BIT) 
	move.l	a4,a0
	add.l	#$E974,a0
	move.l	(a0),d0
	and.l	#$400,d0
	beq.b	L187
L186
;	    (*ctx->Driver.SetBuffer)( ctx, GL_BACK );
	pea	$405.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
;	    (*ctx->Driver.WriteMonoCIPixels)( ctx, PB->count, PB->x, P
	pea	-$12C4(a5)
	pea	$4B00(a2)
	move.l	a2,-(a7)
	move.l	a2,a0
	add.l	#$27D94,a0
	move.l	(a0),-(a7)
	move.l	a4,-(a7)
	move.l	$948(a4),a0
	jsr	(a0)
	add.w	#$14,a7
;	    (*ctx->Driver.SetBuffer)( ctx, GL_FRONT );
	pea	$404.w
	move.l	a4,-(a7)
	move.l	$91C(a4),a0
	jsr	(a0)
	addq.w	#$8,a7
L187
;   PB->count = 0;
	move.l	a2,a0
	add.l	#$27D94,a0
	clr.l	(a0)
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

	END
