/*
 * AmigaMesaRTL graphics library
 * Version:  2.0
 * Copyright (C) 1998  Jarno van der Linden
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

/*
 * mesamain.c
 *
 * Version 2.0  13 Sep 1998
 * by Jarno van der Linden
 * jarno@kcbbs.gen.nz
 *
 * Driver interface to some Mesa setup stuff
 * (Basically, context.h interface)
 * - Change to using mesamainBase
 * - STUB added to function names, and added
 *   mesamainBase pointers to interface
 */

#include "gl/gl.h"
#include "types.h"

extern __asm __saveds GLvisual* APIENTRY mesaCreateVisualA(register __a0 void *);
#pragma libcall mesamainBase mesaCreateVisualA a92 801

__asm __saveds GLvisual* APIENTRY STUBmesaCreateVisual( register __d0 GLboolean rgb_flag,
														register __d1 GLboolean alpha_flag,
														register __d2 GLboolean db_flag,
														register __d3 GLint depth_bits,
														register __d4 GLint stencil_bits,
														register __d5 GLint accum_bits,
														register __d6 GLint index_bits,
														register __fp0 GLfloat red_scale,
														register __fp1 GLfloat green_scale,
														register __fp2 GLfloat blue_scale,
														register __fp3 GLfloat alpha_scale,
														register __d7 GLint red_bits,
														register __a0 GLint green_bits,
														register __a1 GLint blue_bits,
														register __a2 GLint alpha_bits,
														register __a3 struct Library *mesamainBase )
{
	struct mesaCreateVisualArgs {
		GLboolean rgb_flag;
		GLboolean alpha_flag;
		GLboolean db_flag;
		GLint depth_bits;
		GLint stencil_bits;
		GLint accum_bits;
		GLint index_bits;
		GLfloat red_scale;
		GLfloat green_scale;
		GLfloat blue_scale;
		GLfloat alpha_scale;
		GLint red_bits;
		GLint green_bits;
		GLint blue_bits;
		GLint alpha_bits;
	} args;

	args.rgb_flag = rgb_flag;
	args.alpha_flag = alpha_flag;
	args.db_flag = db_flag;
	args.depth_bits = depth_bits;
	args.stencil_bits = stencil_bits;
	args.accum_bits = accum_bits;
	args.index_bits = index_bits;
	args.red_scale = red_scale;
	args.green_scale = green_scale;
	args.blue_scale = blue_scale;
	args.alpha_scale = alpha_scale;
	args.red_bits = red_bits;
	args.green_bits = green_bits;
	args.blue_bits = blue_bits;
	args.alpha_bits = alpha_bits;

	return mesaCreateVisualA(&args);
}
