Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /**************************************************************************
  2.  *
  3.  * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
  4.  * All Rights Reserved.
  5.  *
  6.  * Permission is hereby granted, free of charge, to any person obtaining a
  7.  * copy of this software and associated documentation files (the
  8.  * "Software"), to deal in the Software without restriction, including
  9.  * without limitation the rights to use, copy, modify, merge, publish,
  10.  * distribute, sub license, and/or sell copies of the Software, and to
  11.  * permit persons to whom the Software is furnished to do so, subject to
  12.  * the following conditions:
  13.  *
  14.  * The above copyright notice and this permission notice (including the
  15.  * next paragraph) shall be included in all copies or substantial portions
  16.  * of the Software.
  17.  *
  18.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  19.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  20.  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  21.  * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
  22.  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  23.  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  24.  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  25.  *
  26.  **************************************************************************/
  27.  
  28.  
  29. #include "main/glheader.h"
  30. #include "main/context.h"
  31. #include "main/macros.h"
  32. #include "main/enums.h"
  33. #include "main/colormac.h"
  34. #include "main/dd.h"
  35.  
  36. #include "intel_screen.h"
  37. #include "brw_context.h"
  38. #include "brw_defines.h"
  39.  
  40. int
  41. intel_translate_shadow_compare_func(GLenum func)
  42. {
  43.    switch (func) {
  44.    case GL_NEVER:
  45.        return BRW_COMPAREFUNCTION_ALWAYS;
  46.    case GL_LESS:
  47.        return BRW_COMPAREFUNCTION_LEQUAL;
  48.    case GL_LEQUAL:
  49.        return BRW_COMPAREFUNCTION_LESS;
  50.    case GL_GREATER:
  51.        return BRW_COMPAREFUNCTION_GEQUAL;
  52.    case GL_GEQUAL:
  53.       return BRW_COMPAREFUNCTION_GREATER;
  54.    case GL_NOTEQUAL:
  55.       return BRW_COMPAREFUNCTION_EQUAL;
  56.    case GL_EQUAL:
  57.       return BRW_COMPAREFUNCTION_NOTEQUAL;
  58.    case GL_ALWAYS:
  59.        return BRW_COMPAREFUNCTION_NEVER;
  60.    }
  61.  
  62.    assert(!"Invalid shadow comparison function.");
  63.    return BRW_COMPAREFUNCTION_NEVER;
  64. }
  65.  
  66. int
  67. intel_translate_compare_func(GLenum func)
  68. {
  69.    switch (func) {
  70.    case GL_NEVER:
  71.       return BRW_COMPAREFUNCTION_NEVER;
  72.    case GL_LESS:
  73.       return BRW_COMPAREFUNCTION_LESS;
  74.    case GL_LEQUAL:
  75.       return BRW_COMPAREFUNCTION_LEQUAL;
  76.    case GL_GREATER:
  77.       return BRW_COMPAREFUNCTION_GREATER;
  78.    case GL_GEQUAL:
  79.       return BRW_COMPAREFUNCTION_GEQUAL;
  80.    case GL_NOTEQUAL:
  81.       return BRW_COMPAREFUNCTION_NOTEQUAL;
  82.    case GL_EQUAL:
  83.       return BRW_COMPAREFUNCTION_EQUAL;
  84.    case GL_ALWAYS:
  85.       return BRW_COMPAREFUNCTION_ALWAYS;
  86.    }
  87.  
  88.    assert(!"Invalid comparison function.");
  89.    return BRW_COMPAREFUNCTION_ALWAYS;
  90. }
  91.  
  92. int
  93. intel_translate_stencil_op(GLenum op)
  94. {
  95.    switch (op) {
  96.    case GL_KEEP:
  97.       return BRW_STENCILOP_KEEP;
  98.    case GL_ZERO:
  99.       return BRW_STENCILOP_ZERO;
  100.    case GL_REPLACE:
  101.       return BRW_STENCILOP_REPLACE;
  102.    case GL_INCR:
  103.       return BRW_STENCILOP_INCRSAT;
  104.    case GL_DECR:
  105.       return BRW_STENCILOP_DECRSAT;
  106.    case GL_INCR_WRAP:
  107.       return BRW_STENCILOP_INCR;
  108.    case GL_DECR_WRAP:
  109.       return BRW_STENCILOP_DECR;
  110.    case GL_INVERT:
  111.       return BRW_STENCILOP_INVERT;
  112.    default:
  113.       return BRW_STENCILOP_ZERO;
  114.    }
  115. }
  116.  
  117. int
  118. intel_translate_logic_op(GLenum opcode)
  119. {
  120.    switch (opcode) {
  121.    case GL_CLEAR:
  122.       return BRW_LOGICOPFUNCTION_CLEAR;
  123.    case GL_AND:
  124.       return BRW_LOGICOPFUNCTION_AND;
  125.    case GL_AND_REVERSE:
  126.       return BRW_LOGICOPFUNCTION_AND_REVERSE;
  127.    case GL_COPY:
  128.       return BRW_LOGICOPFUNCTION_COPY;
  129.    case GL_COPY_INVERTED:
  130.       return BRW_LOGICOPFUNCTION_COPY_INVERTED;
  131.    case GL_AND_INVERTED:
  132.       return BRW_LOGICOPFUNCTION_AND_INVERTED;
  133.    case GL_NOOP:
  134.       return BRW_LOGICOPFUNCTION_NOOP;
  135.    case GL_XOR:
  136.       return BRW_LOGICOPFUNCTION_XOR;
  137.    case GL_OR:
  138.       return BRW_LOGICOPFUNCTION_OR;
  139.    case GL_OR_INVERTED:
  140.       return BRW_LOGICOPFUNCTION_OR_INVERTED;
  141.    case GL_NOR:
  142.       return BRW_LOGICOPFUNCTION_NOR;
  143.    case GL_EQUIV:
  144.       return BRW_LOGICOPFUNCTION_EQUIV;
  145.    case GL_INVERT:
  146.       return BRW_LOGICOPFUNCTION_INVERT;
  147.    case GL_OR_REVERSE:
  148.       return BRW_LOGICOPFUNCTION_OR_REVERSE;
  149.    case GL_NAND:
  150.       return BRW_LOGICOPFUNCTION_NAND;
  151.    case GL_SET:
  152.       return BRW_LOGICOPFUNCTION_SET;
  153.    default:
  154.       return BRW_LOGICOPFUNCTION_SET;
  155.    }
  156. }
  157.