Path: blob/master/libmupen64plus/mupen64plus-video-rice/src/OGLCombinerTNT2.h
2 views
/*1Copyright (C) 2003 Rice196423This program is free software; you can redistribute it and/or4modify it under the terms of the GNU General Public License5as published by the Free Software Foundation; either version 26of the License, or (at your option) any later version.78This program is distributed in the hope that it will be useful,9but WITHOUT ANY WARRANTY; without even the implied warranty of10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the11GNU General Public License for more details.1213You should have received a copy of the GNU General Public License14along with this program; if not, write to the Free Software15Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.16*/1718#ifndef _OGL_COMBINER_TNT2_H_19#define _OGL_COMBINER_TNT2_H_2021#include <SDL_opengl.h>2223#define GL_SOURCE3_RGB_EXT 0x858324#define GL_SOURCE3_ALPHA_EXT 0x858B25#define GL_OPERAND3_RGB_EXT 0x859326#define GL_OPERAND3_ALPHA_EXT 0x859B2728#include "OGLExtCombiner.h"29#include "OGLDecodedMux.h"30#include "CNvTNTCombiner.h"3132//========================================================================3334class COGLColorCombinerTNT2 : public COGLColorCombiner4, CNvTNTCombiner35{36public:37bool Initialize(void);38protected:39friend class OGLDeviceBuilder;4041void InitCombinerCycle12(void);4243virtual void GenerateCombinerSetting(int);44virtual void GenerateCombinerSettingConstants(int);4546COGLColorCombinerTNT2(CRender *pRender);47~COGLColorCombinerTNT2() {} ;4849bool m_bTNT2Supported; // Is this NV OGL extension combiner supported by the video card driver?5051#ifdef DEBUGGER52void DisplaySimpleMuxString(void);53#endif5455private:56virtual GLint MapRGBArgs(uint8 arg);57static GLint MapRGBArgFlags(uint8 arg);58virtual GLint MapAlphaArgs(uint8 arg);59static GLint MapAlphaArgFlags(uint8 arg);60static GLint RGBArgsMap[];61static const char* GetOpStr(GLenum op);6263};64656667#endif68697071