applied Philippe Houdoin's patch, plus minor clean-ups
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
/* $Id: GLView.cpp,v 1.6 2002/09/19 16:19:45 brianp Exp $ */
|
/* $Id: GLView.cpp,v 1.7 2002/10/17 14:25:30 brianp Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mesa 3-D graphics library
|
* Mesa 3-D graphics library
|
||||||
* Version: 3.5
|
* Version: 4.1
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
|
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
@@ -25,54 +25,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* $Log: GLView.cpp,v $
|
|
||||||
* Revision 1.6 2002/09/19 16:19:45 brianp
|
|
||||||
* Updated BeOS support (Philippe Houdoin)
|
|
||||||
*
|
|
||||||
* Revision 1.5 2000/11/17 21:01:26 brianp
|
|
||||||
* Minor header file changes to silence warnings.
|
|
||||||
* Added _mesa_enable_sw_extensions(), called by software-only drivers
|
|
||||||
* to enable all s/w-supported GL extensions.
|
|
||||||
*
|
|
||||||
* Revision 1.4 2000/11/14 17:51:15 brianp
|
|
||||||
* more Driver.Color, Driver.Index updates
|
|
||||||
*
|
|
||||||
* Revision 1.3 2000/09/26 20:54:09 brianp
|
|
||||||
* First batch of OpenGL SI related changes:
|
|
||||||
* Renamed struct gl_context to struct __GLcontextRec.
|
|
||||||
* Include glcore.h, setup GL imports/exports.
|
|
||||||
* Replaced gl_ prefix with _mesa_ prefix in context.[ch] functions.
|
|
||||||
* GLcontext's Visual field is no longer a pointer.
|
|
||||||
*
|
|
||||||
* Revision 1.2 2000/03/19 01:13:13 brianp
|
|
||||||
* updated for Mesa 3.3
|
|
||||||
*
|
|
||||||
* Revision 1.1.1.1 1999/08/19 00:55:41 jtg
|
|
||||||
* Imported sources
|
|
||||||
*
|
|
||||||
* Revision 1.7 1999/03/28 21:08:17 brianp
|
|
||||||
* updated SetBuffer driver function
|
|
||||||
*
|
|
||||||
* Revision 1.6 1999/02/14 03:44:37 brianp
|
|
||||||
* new copyright
|
|
||||||
*
|
|
||||||
* Revision 1.5 1999/02/11 03:50:57 brianp
|
|
||||||
* added CopySubBufferMESA()
|
|
||||||
*
|
|
||||||
* Revision 1.4 1999/02/06 17:44:59 brianp
|
|
||||||
* code clean-up and bug fixes
|
|
||||||
*
|
|
||||||
* Revision 1.3 1999/02/04 04:13:15 brianp
|
|
||||||
* implemented double buffering
|
|
||||||
*
|
|
||||||
* Revision 1.2 1999/02/03 04:23:28 brianp
|
|
||||||
* basic device driver functions now work (yeah!)
|
|
||||||
*
|
|
||||||
* Revision 1.1 1999/02/02 04:40:46 brianp
|
|
||||||
* Initial revision
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "glheader.h"
|
#include "glheader.h"
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@@ -151,7 +103,7 @@ private:
|
|||||||
BGLView * m_bglview;
|
BGLView * m_bglview;
|
||||||
BBitmap * m_bitmap;
|
BBitmap * m_bitmap;
|
||||||
|
|
||||||
GLubyte m_clear_color[4]; // buffer clear color
|
GLchan m_clear_color[4]; // buffer clear color
|
||||||
GLuint m_clear_index; // buffer clear color index
|
GLuint m_clear_index; // buffer clear color index
|
||||||
GLint m_bottom; // used for flipping Y coords
|
GLint m_bottom; // used for flipping Y coords
|
||||||
GLuint m_width;
|
GLuint m_width;
|
||||||
@@ -160,7 +112,7 @@ private:
|
|||||||
// Mesa Device Driver functions
|
// Mesa Device Driver functions
|
||||||
static void UpdateState(GLcontext *ctx, GLuint new_state);
|
static void UpdateState(GLcontext *ctx, GLuint new_state);
|
||||||
static void ClearIndex(GLcontext *ctx, GLuint index);
|
static void ClearIndex(GLcontext *ctx, GLuint index);
|
||||||
static void ClearColor(GLcontext *ctx, const GLchan color[4]);
|
static void ClearColor(GLcontext *ctx, const GLfloat color[4]);
|
||||||
static void Clear(GLcontext *ctx, GLbitfield mask,
|
static void Clear(GLcontext *ctx, GLbitfield mask,
|
||||||
GLboolean all, GLint x, GLint y,
|
GLboolean all, GLint x, GLint y,
|
||||||
GLint width, GLint height);
|
GLint width, GLint height);
|
||||||
@@ -323,10 +275,10 @@ BGLView::BGLView(BRect rect, char *name,
|
|||||||
1
|
1
|
||||||
);
|
);
|
||||||
|
|
||||||
// create core context
|
// create core context
|
||||||
__GLimports imports;
|
__GLimports imports;
|
||||||
_mesa_init_default_imports(&imports, md);
|
_mesa_init_default_imports(&imports, md);
|
||||||
GLcontext * ctx = _mesa_create_context( visual, NULL, &imports);
|
GLcontext * ctx = _mesa_create_context( visual, NULL, &imports);
|
||||||
|
|
||||||
|
|
||||||
// create core framebuffer
|
// create core framebuffer
|
||||||
@@ -339,16 +291,15 @@ BGLView::BGLView(BRect rect, char *name,
|
|||||||
|
|
||||||
_mesa_enable_sw_extensions(ctx);
|
_mesa_enable_sw_extensions(ctx);
|
||||||
_mesa_enable_1_3_extensions(ctx);
|
_mesa_enable_1_3_extensions(ctx);
|
||||||
|
//_mesa_enable_1_4_extensions(ctx);
|
||||||
|
|
||||||
/* Initialize the software rasterizer and helper modules.
|
/* Initialize the software rasterizer and helper modules.
|
||||||
*/
|
*/
|
||||||
|
_swrast_CreateContext(ctx);
|
||||||
_swrast_CreateContext(ctx);
|
_ac_CreateContext(ctx);
|
||||||
_ac_CreateContext(ctx);
|
_tnl_CreateContext(ctx);
|
||||||
_tnl_CreateContext(ctx);
|
_swsetup_CreateContext(ctx);
|
||||||
_swsetup_CreateContext(ctx);
|
_swsetup_Wakeup(ctx);
|
||||||
|
|
||||||
_swsetup_Wakeup(ctx);
|
|
||||||
|
|
||||||
md->Init(this, ctx, visual, buffer );
|
md->Init(this, ctx, visual, buffer );
|
||||||
|
|
||||||
@@ -663,9 +614,12 @@ void MesaDriver::Init(BGLView * bglview, GLcontext * ctx, GLvisual * visual, GLf
|
|||||||
ctx->Driver.CopyConvolutionFilter1D = _swrast_CopyConvolutionFilter1D;
|
ctx->Driver.CopyConvolutionFilter1D = _swrast_CopyConvolutionFilter1D;
|
||||||
ctx->Driver.CopyConvolutionFilter2D = _swrast_CopyConvolutionFilter2D;
|
ctx->Driver.CopyConvolutionFilter2D = _swrast_CopyConvolutionFilter2D;
|
||||||
|
|
||||||
ctx->Driver.BaseCompressedTexFormat = _mesa_base_compressed_texformat;
|
ctx->Driver.CompressedTexImage1D = _mesa_store_compressed_teximage1d;
|
||||||
ctx->Driver.CompressedTextureSize = _mesa_compressed_texture_size;
|
ctx->Driver.CompressedTexImage2D = _mesa_store_compressed_teximage2d;
|
||||||
ctx->Driver.GetCompressedTexImage = _mesa_get_compressed_teximage;
|
ctx->Driver.CompressedTexImage3D = _mesa_store_compressed_teximage3d;
|
||||||
|
ctx->Driver.CompressedTexSubImage1D = _mesa_store_compressed_texsubimage1d;
|
||||||
|
ctx->Driver.CompressedTexSubImage2D = _mesa_store_compressed_texsubimage2d;
|
||||||
|
ctx->Driver.CompressedTexSubImage3D = _mesa_store_compressed_texsubimage3d;
|
||||||
|
|
||||||
swdd->SetBuffer = MesaDriver::SetBuffer;
|
swdd->SetBuffer = MesaDriver::SetBuffer;
|
||||||
|
|
||||||
@@ -780,15 +734,13 @@ void MesaDriver::ClearIndex(GLcontext *ctx, GLuint index)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MesaDriver::ClearColor(GLcontext *ctx, const GLchan color[4])
|
void MesaDriver::ClearColor(GLcontext *ctx, const GLfloat color[4])
|
||||||
// GLubyte r, GLubyte g,
|
|
||||||
// GLubyte b, GLubyte a)
|
|
||||||
{
|
{
|
||||||
MesaDriver *md = (MesaDriver *) ctx->DriverCtx;
|
MesaDriver *md = (MesaDriver *) ctx->DriverCtx;
|
||||||
md->m_clear_color[BE_RCOMP] = color[0];
|
CLAMPED_FLOAT_TO_CHAN(md->m_clear_color[BE_RCOMP], color[0]);
|
||||||
md->m_clear_color[BE_GCOMP] = color[1];
|
CLAMPED_FLOAT_TO_CHAN(md->m_clear_color[BE_GCOMP], color[1]);
|
||||||
md->m_clear_color[BE_BCOMP] = color[2];
|
CLAMPED_FLOAT_TO_CHAN(md->m_clear_color[BE_BCOMP], color[2]);
|
||||||
md->m_clear_color[BE_ACOMP] = color[3];
|
CLAMPED_FLOAT_TO_CHAN(md->m_clear_color[BE_ACOMP], color[3]);
|
||||||
assert(md->m_bglview);
|
assert(md->m_bglview);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user