⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r300_fragprog_swz.c

📁 mesa-6.5-minigui源码
💻 C
📖 第 1 页 / 共 3 页
字号:
/* * Copyright (C) 2005 Jerome Glisse.  All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */#include "r300_fragprog.h"#include "r300_reg.h"#define I0_000	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_ZERO) |				\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_111	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_ZERO) |				\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG2C_SHIFT) )#define I0_XXX	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0C_XXX) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_YYY	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0C_YYY) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_ZZZ	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0C_ZZZ) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_XYZ	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0C_XYZ) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_YZX	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0C_YZX) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_ZXY	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0C_ZXY) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_WZY	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0CA_WZY) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define I0_WWW	( (R300_FPI0_OUTC_MAD) |				\		  (R300_FPI0_ARGC_SRC0A) |				\		  (R300_FPI0_ARGC_ONE  << R300_FPI0_ARG1C_SHIFT) |	\		  (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )#define IEMPTY	0#define I1_XYZ	( R300_FPI1_SRC1C_CONST |	\		  R300_FPI1_SRC2C_CONST |	\		  R300_FPI1_DSTC_REG_X |	\		  R300_FPI1_DSTC_REG_Y |	\		  R300_FPI1_DSTC_REG_Z )#define I1_XY_	( R300_FPI1_SRC1C_CONST |	\		  R300_FPI1_SRC2C_CONST |	\		  R300_FPI1_DSTC_REG_X |	\		  R300_FPI1_DSTC_REG_Y )	#define I1_X_Z	( R300_FPI1_SRC1C_CONST |	\		  R300_FPI1_SRC2C_CONST |	\		  R300_FPI1_DSTC_REG_X |	\		  R300_FPI1_DSTC_REG_Z )	#define I1__YZ	( R300_FPI1_SRC1C_CONST |	\		  R300_FPI1_SRC2C_CONST |	\		  R300_FPI1_DSTC_REG_Y |	\		  R300_FPI1_DSTC_REG_Z )#define I1_X__	( R300_FPI1_SRC1C_CONST |	\		  R300_FPI1_SRC2C_CONST |	\		  R300_FPI1_DSTC_REG_X )#define I1__Y_	( R300_FPI1_SRC1C_CONST |	\		  R300_FPI1_SRC2C_CONST |	\		  R300_FPI1_DSTC_REG_Y )#define I1___Z	( R300_FPI1_SRC1C_CONST |	\		  R300_FPI1_SRC2C_CONST |	\		  R300_FPI1_DSTC_REG_Z )#define SEMPTY	{0,{0,0,0,0},{0,0,0,0,0,0,0,0}}struct r300_fragment_program_swizzle r300_swizzle [512] = {	/* XXX */	{1,{0,0,0,0},{ I0_XXX, I1_XYZ,		       0, 0, 0, 0, 0, 0 } },	/* YXX */	{2,{0,0,0,0},{ I0_YZX, I1_X_Z,		       I0_XXX, I1__Y_,		       0,0,		       0,0 } },	/* ZXX */	{2,{0,0,0,0},{ I0_ZZZ, I1_X__,		       I0_XXX, I1__YZ,		       0,0,		       0,0 } },	/* WXX */	{2,{0,0,0,0},{ I0_WZY, I1_X__,		       I0_XXX, I1__YZ,		       0,0,		       0,0} },	/* 0XX */	{2,{0,2,0,0},{ I0_XXX, I1__YZ,		       I0_000, I1_X__,		       0,0,		       0,0 } },	/* 1XX */	{2,{0,2,0,0},{ I0_XXX, I1__YZ,		       I0_111, I1_X__,		       0,0,0,0}},	SEMPTY,SEMPTY,	/* XYX */	{2,{0,0,0,0},{ I0_YYY, I1__Y_,		       I0_XXX, I1_X_Z,		       0,0,0,0}},	/* YYX */	{2,{0,0,0,0},{ I0_YYY, I1_XY_,		       I0_XXX, I1___Z,		       0,0,0,0}},	/* ZYX */	{3,{0,0,0,0},{ I0_ZZZ, I1_X__,		       I0_YYY, I1__Y_,		       I0_XXX, I1___Z,		       0,0}},	/* WYX */	{3,{0,0,0,0},{ I0_WZY, I1_X__,		       I0_YYY, I1__Y_,		       I0_XXX, I1___Z,		       0,0}},	/* 0YX */	{3,{0,0,2,0},{ I0_YYY, I1__Y_,		       I0_XXX, I1___Z,	               I0_000, I1_X__,		       0,0}},	/* 1YX */	{3,{0,0,2,0},{ I0_YYY, I1__Y_,		       I0_XXX, I1___Z,		       I0_111, I1_X__,		       0,0}},	SEMPTY,SEMPTY,	/* XZX */	{2,{0,0,0,0},{ I0_YZX, I1__YZ,		       I0_XXX, I1_X__,		       0,0,0,0}},	/* YZX */	{1,{0,0,0,0},{ I0_YZX, I1_XYZ,		       0, 0, 0, 0, 0, 0 } },	/* ZZX */	{2,{0,0,0,0},{ I0_YZX, I1__YZ,		       I0_ZZZ, I1_X__,0,0,0,0}},	/* WZX */	{2,{0,0,0,0},{ I0_WZY, I1_XY_,		       I0_XXX, I1___Z,0,0,0,0}},	/* 0ZX */	{2,{0,2,0,0},{ I0_YZX, I1__YZ,		       I0_000, I1_X__,	               0,0,0,0}},	/* 1ZX */	{2,{0,2,0,0},{ I0_YZX, I1__YZ,		       I0_111, I1_X__,	               0,0,0,0}},	SEMPTY,SEMPTY,	/* XWX */	{2,{0,0,0,0},{ I0_WWW, I1__Y_,		       I0_XXX, I1_X_Z,		       0,0,0,0}},	/* YWX */	{2,{0,0,0,0},{ I0_WWW, I1__Y_,		       I0_YZX, I1_X_Z,		       0,0,0,0}},	/* ZWX */	{3,{0,0,0,0},{ I0_WWW, I1__Y_,		       I0_ZZZ, I1_X__,		       I0_XXX, I1___Z,		       0,0}},	/* WWX */	{2,{0,0,0,0},{ I0_WWW, I1_XY_,		       I0_YZX, I1___Z,		       0,0,0,0}},	/* 0WX */	{3,{0,0,2,0},{ I0_WWW, I1__Y_,		       I0_XXX, I1___Z,		       I0_000, I1_X__,		       0,0}},	/* 1WX */	{3,{0,0,2,0},{ I0_WWW, I1__Y_,		       I0_XXX, I1___Z,		       I0_111, I1_X__,		       0,0}},	SEMPTY,SEMPTY,	/* X0X */	{2,{0,2,0,0},{ I0_XXX, I1_X_Z,		       I0_000, I1__Y_,		       0,0,0,0}},	/* Y0X */	{2,{0,2,0,0},{ I0_YZX, I1_X_Z,		       I0_000, I1__Y_,		       0,0,0,0}},	/* Z0X */	{3,{0,2,0,0},{ I0_XXX, I1___Z,		       I0_000, I1__Y_,		       I0_ZZZ, I1_X__,		       0,0}},	/* W0X */	{3,{0,0,2,0},{ I0_WZY, I1_XYZ,		       I0_XXX, I1___Z,		       		       I0_000, I1__Y_,		       0,0}},	/* 00X */	{2,{0,2,0,0},{ I0_XXX, I1___Z,		       I0_000, I1_XY_,		       0,0,0,0}},	/* 10X */	{3,{0,2,0,0},{ I0_XXX, I1___Z,		       I0_000, I1__Y_,		       I0_111, I1_X__,		       0,0}},	SEMPTY,SEMPTY,	/* X1X */	{2,{0,2,0,0},{ I0_XXX, I1_X_Z,		       I0_111, I1__Y_,		       0,0,0,0}},	/* Y1X */	{2,{0,2,0,0},{ I0_YZX, I1_X_Z,		       I0_111, I1__Y_,		       0,0,0,0}},	/* Z1X */	{3,{0,2,0,0},{ I0_XXX, I1___Z,		       I0_111, I1__Y_,		       I0_ZZZ, I1_X__,		       0,0}},	/* W1X */	{3,{0,0,2,0},{ I0_WZY, I1_XYZ,		       I0_XXX, I1___Z,		       I0_111, I1__Y_,		       0,0}},	/* 01X */	{3,{0,2,0,0},{ I0_XXX, I1___Z,		       I0_111, I1__Y_,		       I0_000, I1_X__,		       0,0}},	/* 11X */	{2,{0,2,0,0},{ I0_XXX, I1___Z,		       I0_111, I1_XY_,		       0,0,0,0}},	SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,	SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,	/* XXY */	{2,{0,0,0,0},{ I0_YYY, I1___Z,		       I0_XXX, I1_XY_,		       0,0,0,0}},	/* YXY */	{2,{0,0,0,0},{ I0_YYY, I1_X_Z,		       I0_XXX, I1__Y_,		       0,0,0,0}},	/* ZXY */	{1,{0,0,0,0},{ I0_ZXY, I1_XYZ,		       0, 0, 0, 0, 0, 0 } },	/* WXY */	{2,{0,0,0,0},{ I0_WZY, I1_X__,		       I0_ZXY, I1__YZ,		       0,0,0,0}},	/* 0XY */	{2,{0,0,0,0},{ I0_ZXY, I1__YZ,		       I0_000, I1_X__,		       0,0,0,0}},	/* 1XY */	{2,{0,0,0,0},{ I0_ZXY, I1__YZ,		       I0_111, I1_X__,		       0,0,0,0}},	SEMPTY,SEMPTY,	/* XYY */	{2,{0,0,0,0},{ I0_YYY, I1__YZ,		       I0_XXX, I1_X__,		       0,0,0,0}},	/* YYY */	{1,{0,0,0,0},{ I0_YYY, I1_XYZ,		       0, 0, 0, 0, 0, 0 } },	/* ZYY */	{2,{0,0,0,0},{ I0_YYY, I1__YZ,		       I0_ZZZ, I1_X__,		       0,0,0,0}},	/* WYY */	{2,{0,0,0,0},{ I0_WZY, I1_XYZ,		       I0_YYY, I1__YZ,		       0,0,0,0}},	/* 0YY */	{2,{0,0,0,0},{ I0_YYY, I1__YZ,		       I0_000, I1_X__,		       0,0,0,0}},	/* 1YY */	{2,{0,0,0,0},{ I0_YYY, I1__YZ,		       I0_111, I1_X__,		       0,0,0,0}},	SEMPTY,SEMPTY,	/* XZY */	{2,{0,0,0,0},{ I0_WZY, I1__YZ,		       I0_XXX, I1_X__,		       0,0,0,0}},	/* YZY */	{2,{0,0,0,0},{ I0_WZY, I1__YZ,		       I0_YYY, I1_X__,		       0,0,0,0}},	/* ZZY */	{2,{0,0,0,0},{ I0_WZY, I1__YZ,		       I0_ZZZ, I1_X__,		       0,0,0,0}},	/* WZY */	{1,{0,0,0,0},{ I0_WZY, I1_XYZ,		       0, 0, 0, 0, 0, 0 } },	/* 0ZY */	{2,{0,0,0,0},{ I0_WZY, I1__YZ,		       I0_000, I1_X__,		       0,0,0,0}},	/* 1ZY */	{2,{0,0,0,0},{ I0_WZY, I1__YZ,		       I0_111, I1_X__,		       0,0,0,0}},	SEMPTY,SEMPTY,	/* XWY */	{3,{0,0,0,0},{ I0_WWW, I1__Y_,		       I0_XXX, I1_X__,		       I0_YYY, I1___Z,		       0,0}},	/* YWY */	{2,{0,0,0,0},{ I0_WWW, I1__Y_,		       I0_YYY, I1_X_Z,		       0,0,0,0}},	/* ZWY */	{2,{0,0,0,0},{ I0_WWW, I1__Y_,		       I0_ZXY, I1_X_Z,		       0,0,0,0}},	/* WWY */	{2,{0,0,0,0},{ I0_WWW, I1_XY_,		       I0_ZXY, I1___Z,		       0,0,0,0}},	/* 0WY */	{3,{0,0,2,0},{ I0_WWW, I1__Y_,		       I0_ZXY, I1___Z,		       I0_000, I1_X__,		       0,0}},	/* 1WY */	{3,{0,0,0,0},{ I0_WWW, I1__Y_,		       I0_ZXY, I1___Z,		       I0_111, I1_X__,		       0,0}},	SEMPTY,SEMPTY,	/* X0Y */	{3,{0,2,0,0},{ I0_XXX, I1_X__,		       I0_000, I1__Y_,		       I0_YYY, I1___Z,		       0,0}},	/* Y0Y */	{2,{0,2,0,0},{ I0_YYY, I1_X_Z,		       I0_000, I1__Y_,		       0,0,0,0}},	/* Z0Y */	{2,{0,2,0,0},{ I0_ZXY, I1_X_Z,		       I0_000, I1__Y_,		       0,0,0,0}},	/* W0Y */	{2,{0,2,0,0},{ I0_WZY, I1_X_Z,		       I0_000, I1__Y_,		       0,0,0,0}},	/* 00Y */	{2,{0,2,0,0},{ I0_YYY, I1___Z,		       I0_000, I1_XY_,		       0,0,0,0}},	/* 10Y */	{3,{0,2,0,0},{ I0_YYY, I1___Z,		       I0_000, I1__Y_,		       I0_111, I1_X__,		       0,0}},	SEMPTY,SEMPTY,	/* X1Y */	{3,{0,2,0,0},{ I0_XXX, I1_X__,		       I0_111, I1__Y_,		       I0_YYY, I1___Z,		       0,0}},	/* Y1Y */	{2,{0,2,0,0},{ I0_YYY, I1_X_Z,		       I0_111, I1__Y_,		       0,0,0,0}},	/* Z1Y */	{2,{0,2,0,0},{ I0_ZXY, I1_X_Z,		       I0_111, I1__Y_,		       0,0,0,0}},	/* W1Y */	{3,{0,2,0,0},{ I0_WZY, I1_X_Z,		       I0_111, I1__Y_,		       0,0,0,0}},	/* 01Y */	{3,{0,2,0,0},{ I0_YYY, I1___Z,		       I0_111, I1__Y_,		       I0_000, I1_X__,		       0,0}},	/* 11Y */	{2,{0,2,0,0},{ I0_YYY, I1___Z,		       I0_111, I1_XY_,		       0,0,0,0}},	SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,	SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,	/* XXZ */	{2,{0,0,0,0},{ I0_XXX, I1_XY_,		       I0_ZZZ, I1___Z,		       0,0,0,0}},	/* YXZ */	{3,{0,0,0,0},{ I0_XXX, I1__Y_,		       I0_YYY, I1_X__,		       I0_ZZZ, I1___Z,		       0,0}},	/* ZXZ */	{2,{0,0,0,0},{ I0_XXX, I1__Y_,		       I0_ZZZ, I1_X_Z,		       0,0,0,0}},	/* WXZ */	{3,{0,0,0,0},{ I0_WZY, I1_XYZ,		       I0_XXX, I1__Y_,		       I0_ZZZ, I1___Z,		       0,0}},	/* 0XZ */	{3,{0,0,2,0},{ I0_XXX, I1__Y_,		       I0_ZZZ, I1___Z,		       I0_000, I1_X__,		       0,0}},

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -