Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/src/swapbuffers.c')
-rw-r--r--source/blender/src/swapbuffers.c289
1 files changed, 0 insertions, 289 deletions
diff --git a/source/blender/src/swapbuffers.c b/source/blender/src/swapbuffers.c
deleted file mode 100644
index cad8d86e677..00000000000
--- a/source/blender/src/swapbuffers.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-
-/* HRMS!!... blender has its own swapbuffers method. for sgi only that worked pretty nice.
- * but with porting to linux and win, with mesa and opengl variations, it all grow
- * out of control.
- * with the introduction of Ghost (2002) we really should bring this back to a single
- * method again. (ton)
- */
-
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "DNA_space_types.h"
-#include "DNA_screen_types.h"
-
-#include "BKE_global.h"
-
-#include "BIF_gl.h"
-#include "BIF_interface.h"
-#include "BIF_mywindow.h"
-#include "BIF_screen.h"
-#include "BIF_space.h"
-
-#include "winlay.h"
-
-#if 0
-static void copy_back_to_front(void)
-{
- int actually_swap= 0;
- int winx, winy;
- char *data;
-
- winlay_get_winsize(&winx, &winy);
-
- if (actually_swap) {
- data= MEM_mallocN(4*winx*winy, "swap");
- glReadPixels(0, 0, winx, winy, GL_RGBA, GL_UNSIGNED_BYTE, data);
- }
-
- mywinset(1);
- glRasterPos2f(-0.5,-0.5);
- glReadBuffer(GL_BACK);
- glDrawBuffer(GL_FRONT);
- glCopyPixels(0, 0, winx, winy, GL_COLOR);
- glDrawBuffer(GL_BACK);
- glFlush();
-
- if (actually_swap) {
- glRasterPos2f(-0.5,-0.5);
- glDrawPixels(winx, winy, GL_RGBA, GL_UNSIGNED_BYTE, data);
- glFlush();
- MEM_freeN(data);
- }
-}
-#endif
-
-static void screen_swapbuffers_REDRAW(bScreen *sc)
-{
- ScrArea *sa;
- int doswap= 0, swap;
-
- /* a new implementation: only using redraws and a normal swapbuffer */
-
- /* all areas front ok? */
- sa= sc->areabase.first;
- while(sa) {
- if(sa->win && (sa->win_swap & WIN_FRONT_OK)==0) break;
- if(sa->headertype==0) sa->head_swap= WIN_EQUAL;
- if((sa->head_swap & WIN_FRONT_OK)==0) break;
- sa= sa->next;
- }
- if(sa==0) return;
-
- sa= sc->areabase.first;
- while(sa) {
- swap= sa->win_swap;
- if( (swap & WIN_BACK_OK) == 0) {
- scrarea_do_windraw(sa);
-
- doswap= 1;
- sa->win_swap= swap | WIN_BACK_OK;
- }
- else if( sa->win_swap==WIN_BACK_OK) doswap= 1;
-
- swap= sa->head_swap;
- if( (swap & WIN_BACK_OK) == 0) {
- if (sa->headertype) scrarea_do_headdraw(sa);
- doswap= 1;
- sa->head_swap = swap | WIN_BACK_OK;
- }
- else if( sa->head_swap==WIN_BACK_OK) doswap= 1;
-
- sa= sa->next;
- }
-
- /* the whole backbuffer should now be ok */
- if(doswap) {
- myswapbuffers();
- }
-}
-
-#include "BMF_Api.h"
-#include <stdio.h>
-
-static void draw_debug_win(int win)
-{
- static int drawcounter= 0;
- char buf[64];
- int x, y;
- int w, h;
-
- bwin_getsuborigin(win, &x, &y);
- bwin_getsize(win, &w, &h);
-
- mywinset(win);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, w, 0, h, -1, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- glColor3f(0.8, 0.8, 0.8);
- glRecti(0, 0, w, h);
-
- glColor3f(0.6, 0.6, 0.6);
- glRecti(2, 2, w-4, h-4);
-
- glColor3ub(0, 0, 0);
- glRasterPos2i(5, 5);
-
- sprintf(buf, "win: %d - (%d, %d, %d, %d) %d\n", win, x, y, w, h, drawcounter++);
- BMF_DrawString(G.font, buf);
-}
-
-static void screen_swapbuffers_DEBUG(bScreen *sc)
-{
- ScrArea *sa;
-
- for (sa= sc->areabase.first; sa; sa= sa->next) {
- draw_debug_win(sa->win);
- if (sa->headwin) draw_debug_win(sa->headwin);
- }
-
- myswapbuffers();
-}
-
-static void screen_swapbuffers_DEBUG_SWAP(bScreen *sc)
-{
- ScrArea *sa;
- int doswap= 0, swap;
-
- /* a new implementation: only using redraws and a normal swapbuffer */
-
- /* all areas front ok? */
- sa= sc->areabase.first;
- while(sa) {
- if(sa->win && (sa->win_swap & WIN_FRONT_OK)==0) break;
- if(!sa->headertype) sa->head_swap= WIN_EQUAL;
- if((sa->head_swap & WIN_FRONT_OK)==0) break;
- sa= sa->next;
- }
- if(sa==0) return;
-
- sa= sc->areabase.first;
- while(sa) {
-
- swap= sa->win_swap;
- if( (swap & WIN_BACK_OK) == 0) {
- scrarea_do_windraw(sa);
- draw_debug_win(sa->win);
-
- doswap= 1;
- sa->win_swap= swap | WIN_BACK_OK;
- }
- else if( sa->win_swap==WIN_BACK_OK) doswap= 1;
-
- swap= sa->head_swap;
- if( (swap & WIN_BACK_OK) == 0) {
- if (sa->headertype) {
- scrarea_do_headdraw(sa);
- draw_debug_win(sa->headwin);
- }
- doswap= 1;
- sa->head_swap = swap | WIN_BACK_OK;
- }
- else if( sa->head_swap==WIN_BACK_OK) doswap= 1;
-
- sa= sa->next;
- }
-
- if(doswap) {
- myswapbuffers();
- }
-}
-
-static void screen_swapbuffers_SIMPLE(bScreen *sc)
-{
- ScrArea *sa;
-
- mywinset(1);
- glClearColor(0.8, 0.6, 0.7, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- for (sa= sc->areabase.first; sa; sa= sa->next) {
- scrarea_do_windraw(sa);
- if (sa->headertype) scrarea_do_headdraw(sa);
- }
-
- myswapbuffers();
-}
-
-static int drawmode_default= 'r';
-int debug_swapbuffers_override= 0;
-
-void set_debug_swapbuffers_ovveride(bScreen *sc, int mode)
-{
- ScrArea *sa;
- for (sa= sc->areabase.first; sa; sa= sa->next) {
- sa->win_swap= 0;
- sa->head_swap= 0;
- }
- debug_swapbuffers_override= mode;
-}
-
-void screen_swapbuffers(void)
-{
- ScrArea *tempsa;
-
- bScreen *sc= G.curscreen;
- int drawmode;
-
- if (debug_swapbuffers_override) {
- drawmode= debug_swapbuffers_override;
- } else {
- drawmode= drawmode_default;
- }
-
- tempsa= curarea;
- areawinset(1);
-
- if (drawmode=='s') {
- screen_swapbuffers_SIMPLE(sc);
- } else if (drawmode=='d') {
- screen_swapbuffers_DEBUG(sc);
- } else if (drawmode=='f') {
- screen_swapbuffers_DEBUG_SWAP(sc);
- } else {
- screen_swapbuffers_REDRAW(sc);
- }
-
- areawinset(tempsa->win);
-}