亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? printutils.c

?? nVidia開發(fā)的圖形語言 Cg
?? C
?? 第 1 頁 / 共 3 頁
字號:
/****************************************************************************\
Copyright (c) 2002, NVIDIA Corporation.

NVIDIA Corporation("NVIDIA") supplies this software to you in
consideration of your agreement to the following terms, and your use,
installation, modification or redistribution of this NVIDIA software
constitutes acceptance of these terms.  If you do not agree with these
terms, please do not use, install, modify or redistribute this NVIDIA
software.

In consideration of your agreement to abide by the following terms, and
subject to these terms, NVIDIA grants you a personal, non-exclusive
license, under NVIDIA's copyrights in this original NVIDIA software (the
"NVIDIA Software"), to use, reproduce, modify and redistribute the
NVIDIA Software, with or without modifications, in source and/or binary
forms; provided that if you redistribute the NVIDIA Software, you must
retain the copyright notice of NVIDIA, this notice and the following
text and disclaimers in all such redistributions of the NVIDIA Software.
Neither the name, trademarks, service marks nor logos of NVIDIA
Corporation may be used to endorse or promote products derived from the
NVIDIA Software without specific prior written permission from NVIDIA.
Except as expressly stated in this notice, no other rights or licenses
express or implied, are granted by NVIDIA herein, including but not
limited to any patent rights that may be infringed by your derivative
works or by other works in which the NVIDIA Software may be
incorporated. No hardware is licensed hereunder. 

THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER
PRODUCTS.

IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT,
INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY
OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE
NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT,
TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF
NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\****************************************************************************/
// printutils.c
//

#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "slglobals.h"

///////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////// Debug Printing Functions: //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

#undef PICK
#define PICK(a, b, c, d, e) b

const char *opcode_name[] = {
    OPCODE_TABLE
};

#undef PICK
#define PICK(a, b, c, d, e) e

const subopkind subop_table[] = {
    OPCODE_TABLE
};

#undef PICK

/*
 * lIndent()
 *
 */

static void lIndent(int level)
{
    int ii;

    for (ii = 0; ii < level; ii++)
        printf("    ");
} // lIndent

/*
 * lBPrintExpression() - Print a low level representation of an expression tree.
 *
 */

static void lBPrintExpression(expr *fexpr, int level)
{
    char s[32];
    int subop, mask, ii, nn, bval;
    int OK = 1, HasString = 0;

    lIndent(level);
    if (fexpr) {
        switch (fexpr->common.kind) {
        case DECL_N:
            printf("DECLARATION");
            OK = 0;
            break;
        case SYMB_N:
            printf("S ");
            break;
        case CONST_N:
            printf("C ");
            break;
        case UNARY_N:
            printf("U ");
            break;
        case BINARY_N:
            printf("B ");
            break;
        case TRINARY_N:
            printf("T ");
            break;
        default:
            printf("<kind=%02x>", fexpr->common.kind);
            OK = 0;
            break;
        }
        if (OK) {
            printf("%c%c", fexpr->sym.IsLValue ? 'L' : ' ',
                    fexpr->common.HasSideEffects ? '+' : ' ');
            subop = fexpr->co.subop;
            switch (subop_table[fexpr->co.op]) {
                case SUB_NONE:
                    printf("- - - ");
                    mask = ~0;
                    break;
                case SUB_S:
                    printf("- - %1x ", SUBOP_GET_T(subop));
                    mask = 0x0000000f;
                    break;
                case SUB_V:
                case SUB_VS:
                case SUB_SV:
                    printf("- %1x %1x ", SUBOP_GET_S(subop), SUBOP_GET_T(subop));
                    mask = 0x000000ff;
                    break;
                case SUB_M:
                case SUB_VM:
                case SUB_MV:
                    printf("%1x %1x %1x ", SUBOP_GET_S2(subop), SUBOP_GET_S1(subop),
                            SUBOP_GET_T1(subop));
                    mask = 0x0000f0ff;
                    break;
                case SUB_Z:
                    printf("%1x %1x %1x ", SUBOP_GET_S2(subop), SUBOP_GET_S1(subop),
                            SUBOP_GET_T1(subop));
                    mask = SUBOP_GET_MASK(subop);
                    nn = SUBOP_GET_S2(subop);
                    if (nn == 0)
                        nn = 1; // var.x is scalar, not array[1]
                    s[nn] = '\0';
                    for (ii = 0; ii < nn; ii++)
                        s[ii] = "xyzw"[(mask >> ii*2) & 3];
                    mask = 0x00fff0ff;
                    HasString = 1;
                    break;
                case SUB_ZM:
                    printf("%1x %1x %1x %1x ", SUBOP_GET_S2(subop), SUBOP_GET_T2(subop),
                            SUBOP_GET_S1(subop), SUBOP_GET_T1(subop));
                    mask = SUBOP_GET_MASK16(subop);
                    nn = SUBOP_GET_T2(subop);
                    if (nn == 0)
                        nn = 1; // var.x is scalar, not array[1]
                    s[nn*3] = '\0';
                    for (ii = 0; ii < nn; ii++) {
                        s[ii*3] = '_';
                        s[ii*3 + 1] = '0' + ((mask >> (ii*4 + 2)) & 3);
                        s[ii*3 + 2] = '0' + ((mask >> ii*4) & 3);
                    }
                    mask = 0xffffffff;
                    HasString = 1;
                    break;
                case SUB_CS:
                    printf("%1x - %1x ", SUBOP_GET_T2(subop), SUBOP_GET_T1(subop));
                    mask = 0x00000f0f;
                    break;
                case SUB_CV:
                    printf("%1x %1x %1x ", SUBOP_GET_T2(subop), SUBOP_GET_S1(subop),
                            SUBOP_GET_T1(subop));
                    mask = 0x00000fff;
                    break;
                case SUB_CM:
                    printf("%1x %1x %1x %1x ", SUBOP_GET_S2(subop), SUBOP_GET_T2(subop),
                            SUBOP_GET_S1(subop), SUBOP_GET_T1(subop));
                    mask = 0x0000ffff;
                    break;
                case SUB_KV:
                    printf("- %1x %1x ", SUBOP_GET_S(subop), SUBOP_GET_T(subop));
                    mask = SUBOP_GET_MASK(subop) & 0xf;
                    for (ii = 0; ii < 4; ii++)
                        printf("%c", (mask >> ii) & 1 ? "xyzw"[ii] : '-');
                    printf(" ");
                    mask = 0x000f00ff;
                    break;
                default:
                    mask = 0;
                    break;
            }
            if (subop & ~mask)
                printf("<<non-zero:%08x>> ", subop & ~mask);
            printf("%-6s ", opcode_name[fexpr->co.op]);
            switch (fexpr->common.kind) {
            case SYMB_N:
                printf("\"%s\"", GetAtomString(atable, fexpr->sym.symbol->name));
                break;
            case CONST_N:
                switch (fexpr->co.op) {
                case ICONST_OP:
                    printf("%d", fexpr->co.val[0].i);
                    break;
                case ICONST_V_OP:
                    nn = SUBOP_GET_S(subop);
                    printf("{ ");
                    for (ii = 0; ii < nn; ii++) {
                        if (ii > 0)
                            printf(", ");
                        printf("%d", fexpr->co.val[ii].i);
                    }
                    printf(" }");
                    break;
                case BCONST_OP:
                    bval = fexpr->co.val[0].i;
                    if (bval == 0) {
                        printf("false");
                    } else if (bval == 1) {
                        printf("true");
                    } else {
                        printf("<<bad-bool-%08x>>", fexpr->co.val[0].i);
                    }
                    break;
                case BCONST_V_OP:
                    nn = SUBOP_GET_S(subop);
                    printf("{ ");
                    for (ii = 0; ii < nn; ii++) {
                        if (ii > 0)
                            printf(", ");
                        bval = fexpr->co.val[ii].i;
                        if (bval == 0) {
                            printf("false");
                        } else if (bval == 1) {
                            printf("true");
                        } else {
                            printf("<<bad-bool-%08x>>", fexpr->co.val[ii].i);
                        }
                    }
                    printf(" }");
                    break;
                case FCONST_OP:
                case HCONST_OP:
                case XCONST_OP:
                    printf("%1.6g", fexpr->co.val[0].f);
                    break;
                case FCONST_V_OP:
                case HCONST_V_OP:
                case XCONST_V_OP:
                    nn = SUBOP_GET_S(subop);
                    printf("{ ");
                    for (ii = 0; ii < nn; ii++) {
                        if (ii > 0)
                            printf(", ");
                        printf("%1.6g", fexpr->co.val[ii].f);
                    }
                    printf(" }");
                    break;
                default:
                    printf("UNKNOWN-CONSTANT");
                    break;
                }
                break;
            case UNARY_N:
                break;
            case BINARY_N:
                break;
            case TRINARY_N:
                break;
            }
            if (HasString)
                printf(" %s", s);
            printf(" ");
            PrintType(fexpr->common.type, 1);
            printf("\n");
            switch (fexpr->common.kind) {
            case SYMB_N:
                break;
            case CONST_N:
                break;
            case UNARY_N:
                lBPrintExpression(fexpr->un.arg, level + 1);
                break;
            case BINARY_N:
                lBPrintExpression(fexpr->bin.left, level + 1);
                lBPrintExpression(fexpr->bin.right, level + 1);
                break;
            case TRINARY_N:
                lBPrintExpression(fexpr->tri.arg1, level + 1);
                lBPrintExpression(fexpr->tri.arg2, level + 1);
                lBPrintExpression(fexpr->tri.arg3, level + 1);
                break;
            }
        } else {
            printf("\n");
        }
    } else {
        printf("NULL\n");
    }
} // lBPrintExpression

void BPrintExpression(expr *fexpr)
{
    lBPrintExpression(fexpr, 0);
}

static void lBPrintStmt(stmt *fstmt, int level);

/*
 * lBPrintStmtList()
 *
 */

void lBPrintStmtList(stmt *fstmt, int level)
{
    while (fstmt) {
        lBPrintStmt(fstmt, level);
        fstmt = fstmt->commonst.next;
    }
} // lBPrintStmtList

void BPrintStmtList(stmt *fstmt)
{
    lBPrintStmtList(fstmt, 0);
}

/*
 * lBPrintStmt()
 *
 */

static void lBPrintStmt(stmt *fstmt, int level)
{
    stmt *lstmt;

    switch (fstmt->exprst.kind) {
    case EXPR_STMT:
        if (fstmt->exprst.exp) {
            lBPrintExpression(fstmt->exprst.exp, level);
        } else {
            printf("/* empty statement */\n");
        }
        break;
    case IF_STMT:
        lIndent(level);
        printf("if\n");
        lBPrintExpression(fstmt->ifst.cond, level + 1);
        lIndent(level);
        printf("then\n");
        lBPrintStmtList(fstmt->ifst.thenstmt, level + 1);
        if (fstmt->ifst.elsestmt) {
            lIndent(level);
            printf("else\n");
            lBPrintStmtList(fstmt->ifst.elsestmt, level + 1);
        }
        break;
    case WHILE_STMT:
        lIndent(level);
        printf("while\n");
        lBPrintExpression(fstmt->whilest.cond, level + 1);
        lBPrintStmtList(fstmt->whilest.body, level + 1);
        break;
    case DO_STMT:
        lIndent(level);
        printf("do\n");
        lBPrintStmtList(fstmt->whilest.body, level + 1);
        lIndent(level);
        printf("while\n");
        lBPrintExpression(fstmt->whilest.cond, level + 1);
        break;
    case FOR_STMT:
        lIndent(level);
        printf("for\n");
        lstmt = fstmt->forst.init;
        if (lstmt) {
            lBPrintStmtList(fstmt->forst.init, level + 1);
        }
        printf("for-cond\n");
        if (fstmt->forst.cond) {
            lBPrintExpression(fstmt->forst.cond, level + 1);
        }
        printf("for-step\n");
        lstmt = fstmt->forst.step;
        if (lstmt) {
            lBPrintStmtList(fstmt->forst.step, level + 1);
        }
        printf("for-body\n");
        lBPrintStmtList(fstmt->forst.body, level + 1);
        break;
    case BLOCK_STMT:
        if (level > 1)
            lIndent(level - 1);
        printf("{\n");
        lBPrintStmtList(fstmt->blockst.body, level);
        if (level > 1)
            lIndent(level - 1);
        printf("}\n");
        break;
    case RETURN_STMT:
        lIndent(level);
        printf("return\n");
        if (fstmt->returnst.exp) {
            lBPrintExpression(fstmt->returnst.exp, level + 1);
        }
        break;
    case DISCARD_STMT:
        lIndent(level);
        printf("discard\n");
        if (fstmt->discardst.cond)
            lBPrintExpression(fstmt->discardst.cond, level + 1);
        break;
    case COMMENT_STMT:
        lIndent(level);
        printf("// %s\n", GetAtomString(atable, fstmt->commentst.str));
        break;
    default:
        lIndent(level);
        printf("<!BadStmt-0x%2x>\n", fstmt->exprst.kind);
    }
} // lBPrintStmt

void BPrintStmt(stmt *fstmt)
{
    lBPrintStmt(fstmt, 0);
}

/*
 * FormatTypeString() - Build a printable string of a type.
 *
 * Arrays are shown as: "packed float[4]" instead of "float4".
 *
 */

void FormatTypeString(char *name, int size, char *name2, int size2, Type *fType)
{
    int qualifiers, category, base, cid;
    char tname[32];

    strcpy(name2, "");

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一色哟哟哟| 一区二区三区久久| 国产福利一区二区| 中文字幕av资源一区| 91欧美激情一区二区三区成人| 国产精品成人免费在线| 91国偷自产一区二区三区观看| 亚洲精品免费电影| 欧美一区二区精品久久911| 美女一区二区在线观看| 久久精品亚洲乱码伦伦中文| 成人免费视频视频在线观看免费 | eeuss鲁片一区二区三区 | 欧美mv和日韩mv国产网站| 国产精品综合一区二区| 亚洲欧美成人一区二区三区| 在线欧美一区二区| 久久99国产精品麻豆| 国产精品久久看| 欧美年轻男男videosbes| 激情小说亚洲一区| 亚洲色图20p| 精品国产91九色蝌蚪| 96av麻豆蜜桃一区二区| 日本不卡视频在线观看| 中文字幕精品综合| 欧美一区二区大片| 一本大道综合伊人精品热热| 久久成人免费电影| 亚洲黄色性网站| 久久久亚洲高清| 欧美日韩欧美一区二区| 粉嫩绯色av一区二区在线观看| 夜夜嗨av一区二区三区中文字幕| 精品美女一区二区| 在线看日韩精品电影| 国产一区二区美女| 亚洲va国产天堂va久久en| 日本一区二区成人| 欧美变态tickle挠乳网站| 97久久超碰国产精品| 韩国中文字幕2020精品| 亚洲福利一二三区| 国产精品免费久久| 精品国产91乱码一区二区三区| 欧洲国产伦久久久久久久| 国产一区二区三区美女| 日韩中文字幕区一区有砖一区 | 亚洲国产成人精品视频| 国产精品久久一级| 久久人人超碰精品| 精品入口麻豆88视频| 欧美日韩激情一区二区三区| www.亚洲色图| 国产高清视频一区| 91亚洲精品一区二区乱码| 国产美女av一区二区三区| 日韩中文字幕一区二区三区| 亚洲精品自拍动漫在线| 国产精品视频麻豆| 中文字幕精品一区二区精品绿巨人| 精品sm在线观看| 日韩欧美一级在线播放| 欧美一区二区三区男人的天堂| 在线看国产一区二区| 一本大道综合伊人精品热热| av高清久久久| 91碰在线视频| 91浏览器在线视频| 色爱区综合激月婷婷| 不卡一区中文字幕| 成人黄色免费短视频| 国产成人午夜片在线观看高清观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲与欧洲av电影| 亚洲一区视频在线| 亚洲国产日韩精品| 夜夜爽夜夜爽精品视频| 亚洲视频小说图片| 亚洲乱码国产乱码精品精98午夜| 国产精品日日摸夜夜摸av| 欧美国产一区视频在线观看| 国产精品女人毛片| 亚洲婷婷综合色高清在线| 亚洲天堂福利av| 一区二区三区国产| 天堂久久一区二区三区| 日本亚洲最大的色成网站www| 亚洲高清视频中文字幕| 午夜视频一区在线观看| 日本不卡123| 国产一区二区主播在线| 国产黄色成人av| 成人午夜视频在线观看| 99久久99久久精品免费观看| 色综合天天视频在线观看| 欧美性受极品xxxx喷水| 欧美一区二区福利在线| 精品国产免费久久| 亚洲国产高清aⅴ视频| 亚洲免费观看在线视频| 亚洲电影中文字幕在线观看| 日本网站在线观看一区二区三区| 喷水一区二区三区| 国产在线观看免费一区| 99久久精品国产一区| 欧美日韩亚洲丝袜制服| 精品88久久久久88久久久| 国产精品天干天干在线综合| 樱桃国产成人精品视频| 日韩精品91亚洲二区在线观看 | 日韩综合在线视频| 久久精品国产精品亚洲精品 | 亚洲影院免费观看| 美女精品一区二区| 粉嫩av一区二区三区| 欧美在线观看18| 欧美成人免费网站| 日韩美女啊v在线免费观看| 免费不卡在线视频| 91蜜桃网址入口| 日韩精品在线看片z| 一区在线播放视频| 蜜臀av性久久久久av蜜臀妖精| 成人深夜视频在线观看| 亚洲码国产岛国毛片在线| 亚洲第一狼人社区| 国产成人精品免费一区二区| 欧美少妇一区二区| 国产日韩欧美一区二区三区乱码| 综合激情网...| 日本欧美在线观看| 91麻豆免费在线观看| 日韩一区二区电影| 亚洲色图欧洲色图| 国产精品综合久久| 91精品免费在线观看| 亚洲卡通欧美制服中文| 国产一区亚洲一区| 5858s免费视频成人| 国产精品国产自产拍高清av| 捆绑变态av一区二区三区| 欧美性猛片aaaaaaa做受| 欧美国产精品一区二区三区| 日韩黄色在线观看| 欧美综合视频在线观看| 日韩美女精品在线| 成人午夜碰碰视频| 日韩精品一区国产麻豆| 日日夜夜免费精品| 精品视频在线免费观看| 亚洲美女视频在线观看| 亚洲国产精品t66y| 久久影院视频免费| 一区二区三区欧美在线观看| 激情综合色播五月| 欧美亚洲丝袜传媒另类| 国产精品一区二区不卡| 精品视频一区二区三区免费| 日韩精品综合一本久道在线视频| 午夜精品久久久久久久久久久| 欧美精品99久久久**| 麻豆国产精品视频| 久久精品人人爽人人爽| 91香蕉视频污| 亚洲成a人片综合在线| 亚洲精品一线二线三线| 99re热视频精品| 亚洲成人精品一区二区| 亚洲午夜av在线| 欧美大黄免费观看| 成人aaaa免费全部观看| 午夜精品久久久久| 国产无遮挡一区二区三区毛片日本| 99久久精品国产导航| 亚洲成av人片在线| 久久久久久亚洲综合影院红桃| 99re66热这里只有精品3直播 | 日本欧美一区二区在线观看| 久久综合久久综合久久| 92国产精品观看| 久久国产视频网| 亚洲男人都懂的| 精品卡一卡二卡三卡四在线| 波多野结衣在线aⅴ中文字幕不卡| 亚洲图片一区二区| 国产视频一区在线观看| 欧美日韩另类国产亚洲欧美一级| 国产在线播放一区三区四| 亚洲夂夂婷婷色拍ww47| 2021中文字幕一区亚洲| 日本道精品一区二区三区| 日本中文字幕不卡| 亚洲乱码国产乱码精品精的特点 | 国内精品第一页| 亚洲乱码精品一二三四区日韩在线 | 夜夜操天天操亚洲| 中文字幕第一区二区| 日韩欧美一区二区不卡| 欧美在线视频日韩|