void MesaDriver::ClearFront(GLcontext *ctx, GLboolean all, GLint x, GLint y, GLint width, GLint height) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; BGLView *bglview = md->m_bglview; assert(bglview); bglview->SetHighColor(md->m_clear_color[BE_RCOMP], md->m_clear_color[BE_GCOMP], md->m_clear_color[BE_BCOMP], md->m_clear_color[BE_ACOMP]); bglview->SetLowColor(md->m_clear_color[BE_RCOMP], md->m_clear_color[BE_GCOMP], md->m_clear_color[BE_BCOMP], md->m_clear_color[BE_ACOMP]); if (all) { BRect b = bglview->Bounds(); bglview->FillRect(b); } else { // XXX untested BRect b; b.left = x; b.right = x + width; b.bottom = md->m_height - y - 1; b.top = b.bottom - height; bglview->FillRect(b); } // restore drawing color #if 0 bglview->SetHighColor(md->mColor[BE_RCOMP], md->mColor[BE_GCOMP], md->mColor[BE_BCOMP], md->mColor[BE_ACOMP]); bglview->SetLowColor(md->mColor[BE_RCOMP], md->mColor[BE_GCOMP], md->mColor[BE_BCOMP], md->mColor[BE_ACOMP]); #endif }
void MesaDriver::WriteRGBAPixelsFront(const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], CONST GLubyte rgba[][4], const GLubyte mask[] ) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; BGLView *bglview = md->m_bglview; assert(bglview); if (mask) { for (GLuint i = 0; i < n; i++) { if (mask[i]) { bglview->SetHighColor(rgba[i][0], rgba[i][1], rgba[i][2]); Plot(bglview, x[i], md->m_bottom - y[i]); } } } else { for (GLuint i = 0; i < n; i++) { bglview->SetHighColor(rgba[i][0], rgba[i][1], rgba[i][2]); Plot(bglview, x[i], md->m_bottom - y[i]); } } }
void MesaDriver::WriteRGBSpanFront(const GLcontext *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][3], const GLubyte mask[]) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; BGLView *bglview = md->m_bglview; assert(bglview); int flippedY = md->m_bottom - y; if (mask) { for (GLuint i = 0; i < n; i++) { if (mask[i]) { bglview->SetHighColor(rgba[i][0], rgba[i][1], rgba[i][2]); Plot(bglview, x++, flippedY); } } } else { for (GLuint i = 0; i < n; i++) { bglview->SetHighColor(rgba[i][0], rgba[i][1], rgba[i][2]); Plot(bglview, x++, flippedY); } } }
void MesaDriver::WriteMonoRGBAPixelsFront(const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[]) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; BGLView *bglview = md->m_bglview; assert(bglview); // plot points using current color bglview->SetHighColor(color[RCOMP], color[GCOMP], color[BCOMP]); if (mask) { for (GLuint i = 0; i < n; i++) { if (mask[i]) { Plot(bglview, x[i], md->m_bottom - y[i]); } } } else { for (GLuint i = 0; i < n; i++) { Plot(bglview, x[i], md->m_bottom - y[i]); } } }
void MesaDriver::WriteMonoRGBASpanFront(const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; BGLView *bglview = md->m_bglview; assert(bglview); int flippedY = md->m_bottom - y; bglview->SetHighColor(color[RCOMP], color[GCOMP], color[BCOMP]); if (mask) { for (GLuint i = 0; i < n; i++) { if (mask[i]) { Plot(bglview, x++, flippedY); } } } else { for (GLuint i = 0; i < n; i++) { Plot(bglview, x++, flippedY); } } }