Ignore:
Timestamp:
May 23, 2000, 10:41:28 PM (25 years ago)
Author:
jeroen
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/opengl/mesa/logic.c

    r2962 r3598  
    1 /* $Id: logic.c,v 1.2 2000-03-01 18:49:31 jeroen Exp $ */
     1/* $Id: logic.c,v 1.3 2000-05-23 20:40:39 jeroen Exp $ */
    22
    33/*
    44 * Mesa 3-D graphics library
    5  * Version:  3.1
     5 * Version:  3.3
    66 *
    77 * Copyright (C) 1999  Brian Paul   All Rights Reserved.
     
    3232#include "all.h"
    3333#else
    34 #ifndef XFree86Server
    35 #include <stdlib.h>
    36 #else
    37 #include "GL/xf86glx.h"
    38 #endif
     34#include "glheader.h"
    3935#include "alphabuf.h"
    4036#include "types.h"
     
    4844
    4945
    50 void gl_LogicOp( GLcontext *ctx, GLenum opcode )
    51 {
     46void
     47_mesa_LogicOp( GLenum opcode )
     48{
     49   GET_CURRENT_CONTEXT(ctx);
    5250   ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glLogicOp");
    5351   switch (opcode) {
     
    7068         ctx->Color.LogicOp = opcode;
    7169         ctx->NewState |= NEW_RASTER_OPS;
    72         return;
     70        return;
    7371      default:
    7472         gl_error( ctx, GL_INVALID_ENUM, "glLogicOp" );
    75         return;
     73        return;
    7674   }
    7775
     
    9391      case GL_CLEAR:
    9492         for (i=0;i<n;i++) {
    95             if (mask[i]) {
    96                index[i] = 0;
    97             }
    98         }
    99         break;
     93            if (mask[i]) {
     94               index[i] = 0;
     95            }
     96        }
     97        break;
    10098      case GL_SET:
    10199         for (i=0;i<n;i++) {
    102             if (mask[i]) {
    103                index[i] = 1;
    104             }
    105         }
    106         break;
     100            if (mask[i]) {
     101               index[i] = 1;
     102            }
     103        }
     104        break;
    107105      case GL_COPY:
    108         /* do nothing */
    109         break;
     106        /* do nothing */
     107        break;
    110108      case GL_COPY_INVERTED:
    111109         for (i=0;i<n;i++) {
    112             if (mask[i]) {
    113                index[i] = ~index[i];
    114             }
    115         }
    116         break;
     110            if (mask[i]) {
     111               index[i] = ~index[i];
     112            }
     113        }
     114        break;
    117115      case GL_NOOP:
    118116         for (i=0;i<n;i++) {
    119             if (mask[i]) {
    120                index[i] = dest[i];
    121             }
    122         }
    123         break;
     117            if (mask[i]) {
     118               index[i] = dest[i];
     119            }
     120        }
     121        break;
    124122      case GL_INVERT:
    125123         for (i=0;i<n;i++) {
    126             if (mask[i]) {
    127                index[i] = ~dest[i];
    128             }
    129         }
    130         break;
     124            if (mask[i]) {
     125               index[i] = ~dest[i];
     126            }
     127        }
     128        break;
    131129      case GL_AND:
    132130         for (i=0;i<n;i++) {
    133             if (mask[i]) {
    134                index[i] &= dest[i];
    135             }
    136         }
    137         break;
     131            if (mask[i]) {
     132               index[i] &= dest[i];
     133            }
     134        }
     135        break;
    138136      case GL_NAND:
    139137         for (i=0;i<n;i++) {
    140             if (mask[i]) {
    141                index[i] = ~(index[i] & dest[i]);
    142             }
    143         }
    144         break;
     138            if (mask[i]) {
     139               index[i] = ~(index[i] & dest[i]);
     140            }
     141        }
     142        break;
    145143      case GL_OR:
    146144         for (i=0;i<n;i++) {
    147             if (mask[i]) {
    148                index[i] |= dest[i];
    149             }
    150         }
    151         break;
     145            if (mask[i]) {
     146               index[i] |= dest[i];
     147            }
     148        }
     149        break;
    152150      case GL_NOR:
    153151         for (i=0;i<n;i++) {
    154             if (mask[i]) {
    155                index[i] = ~(index[i] | dest[i]);
    156             }
    157         }
    158         break;
     152            if (mask[i]) {
     153               index[i] = ~(index[i] | dest[i]);
     154            }
     155        }
     156        break;
    159157      case GL_XOR:
    160158         for (i=0;i<n;i++) {
    161             if (mask[i]) {
    162                index[i] ^= dest[i];
    163             }
    164         }
    165         break;
     159            if (mask[i]) {
     160               index[i] ^= dest[i];
     161            }
     162        }
     163        break;
    166164      case GL_EQUIV:
    167165         for (i=0;i<n;i++) {
    168             if (mask[i]) {
    169                index[i] = ~(index[i] ^ dest[i]);
    170             }
    171         }
    172         break;
     166            if (mask[i]) {
     167               index[i] = ~(index[i] ^ dest[i]);
     168            }
     169        }
     170        break;
    173171      case GL_AND_REVERSE:
    174172         for (i=0;i<n;i++) {
    175             if (mask[i]) {
    176                index[i] = index[i] & ~dest[i];
    177             }
    178         }
    179         break;
     173            if (mask[i]) {
     174               index[i] = index[i] & ~dest[i];
     175            }
     176        }
     177        break;
    180178      case GL_AND_INVERTED:
    181179         for (i=0;i<n;i++) {
    182             if (mask[i]) {
    183                index[i] = ~index[i] & dest[i];
    184             }
    185         }
    186         break;
     180            if (mask[i]) {
     181               index[i] = ~index[i] & dest[i];
     182            }
     183        }
     184        break;
    187185      case GL_OR_REVERSE:
    188186         for (i=0;i<n;i++) {
    189             if (mask[i]) {
    190                index[i] = index[i] | ~dest[i];
    191             }
    192         }
    193         break;
     187            if (mask[i]) {
     188               index[i] = index[i] | ~dest[i];
     189            }
     190        }
     191        break;
    194192      case GL_OR_INVERTED:
    195193         for (i=0;i<n;i++) {
    196             if (mask[i]) {
    197                index[i] = ~index[i] | dest[i];
    198             }
    199         }
    200         break;
     194            if (mask[i]) {
     195               index[i] = ~index[i] | dest[i];
     196            }
     197        }
     198        break;
    201199      default:
    202         gl_error( ctx, GL_INVALID_ENUM, "gl_logic error" );
     200        gl_error( ctx, GL_INVALID_ENUM, "gl_logic error" );
    203201   }
    204202}
     
    379377{
    380378   GLubyte dest[MAX_WIDTH][4];
    381    gl_read_rgba_span( ctx, n, x, y, dest );
     379   gl_read_rgba_span( ctx, ctx->DrawBuffer, n, x, y, dest );
    382380   rgba_logicop( ctx, n, mask, (GLuint *) rgba, (const GLuint *) dest );
    383381}
Note: See TracChangeset for help on using the changeset viewer.