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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hal.c

?? nVidia開發的圖形語言 Cg
?? C
?? 第 1 頁 / 共 2 頁
字號:
        default:
            size = 0;
            break;
        }
    } else {
        size = 0;
    }
    return size;
} // GetSizeof_HAL

/*
 * GetAlignment_HAL() - Return a profile specific alignment for this type.
 *         Used for defining struct member offsets for use by code generator.
 */

static int GetAlignment_HAL(Type *fType)
{
    int category, alignment;

    if (fType) {
        if (Cg->theHAL->IsTexobjBase(GetBase(fType))) {
            alignment = 4;
        } else {
            category = GetCategory(fType);
            switch (category) {
            case TYPE_CATEGORY_SCALAR:
                alignment = 4;
                break;
            case TYPE_CATEGORY_STRUCT:
            case TYPE_CATEGORY_ARRAY:
                alignment = 4;
                break;
            case TYPE_CATEGORY_FUNCTION:
            default:
                alignment = 1;
                break;
            }
        }
    } else {
        alignment = 1;
    }
    return alignment;
} // GetAlignment_HAL

/*
 * CheckDeclarators_HAL() - Check for profile-specific limitations of declarators.
 *
 */

static int CheckDeclarators_HAL(SourceLoc *loc, const dtype *fDtype)
{
    int numdims = 0;
    const Type *lType;

    lType = &fDtype->type;
    while (GetCategory(lType) == TYPE_CATEGORY_ARRAY) {
        if (lType->arr.numels == 0 && numdims > 0) {
            SemanticError(loc, ERROR___LOW_DIM_UNSPECIFIED);
            return 0;
        }
        if (lType->arr.numels > 4 && IsPacked(lType)) {
            SemanticError(loc, ERROR___PACKED_DIM_EXCEEDS_4);
            return 0;
        }
        lType = lType->arr.eltype;
        numdims++;
    }
    if (numdims > 3) {
        SemanticError(loc, ERROR___NUM_DIMS_EXCEEDS_3);
        return 0;
    }
    return 1;
} // CheckDeclarators_HAL

/*
 * CheckDefinition_HAL() - Check for profile-specific statement limitations.
 *
 */

static int CheckDefinition_HAL(SourceLoc *loc, int name, const Type *fType)
{
    return 1;
} // CheckDefinition_HAL

/*
 * CheckStatement_HAL() - Check for profile-specific limitations of statements.
 *
 */

static int CheckStatement_HAL(SourceLoc *loc, stmt *fstmt)
{
    return 1;
} // CheckStatement_HAL

/*
 * CheckInternalFunction_HAL() - Check for profile-specific internally implemented function.
 *
 */

static int CheckInternalFunction_HAL(Symbol *fSymb, int *group)
{
    return 0;
} // CheckInternalFunction_HAL

/*
 * IsValidScalarCast_HAL() - Is it valid to typecast a scalar from fromBase to toBase?.
 *
 */

static int IsValidScalarCast_HAL(int toBase, int fromBase, int Explicit)
{
    int answer;

    switch (toBase) {
    case TYPE_BASE_BOOLEAN:
    case TYPE_BASE_FLOAT:
    case TYPE_BASE_INT:
        switch (fromBase) {
        case TYPE_BASE_CFLOAT:
        case TYPE_BASE_CINT:
        case TYPE_BASE_FLOAT:
        case TYPE_BASE_INT:
            answer = 1;
            break;
        case TYPE_BASE_BOOLEAN:
            answer = (toBase == TYPE_BASE_BOOLEAN) || Explicit;
            break;
        default:
            answer = 0;
            break;
        }
        break;
    case TYPE_BASE_CFLOAT:
    case TYPE_BASE_CINT:
    default:
        answer = 0;
        break;
    }
    return answer;
} // IsValidScalarCast_HAL

/*
 * IsValidOperator_HAL() - Is this operator supported in this profile?  Print an error is not.
 *
 */

static int IsValidOperator_HAL(SourceLoc *loc, int name, int op, int suobp)
{
    switch (op) {
    default:
        return 1;
    }
} // IsValidOperator_HAL

/*
 * IsNumericBase_HAL() - Is fBase a numeric type?
 *
 */

static int IsNumericBase_HAL(int fBase)
{
    int answer;

    switch (fBase) {
    case TYPE_BASE_CFLOAT:
    case TYPE_BASE_CINT:
    case TYPE_BASE_FLOAT:
    case TYPE_BASE_INT:
        answer = 1;
        break;
    default:
        answer = 0;
        break;
    }
    return answer;
} // IsNumericBase_HAL

/*
 * IsIntegralBase_HAL() - Is fBase an integral type?
 *
 */

static int IsIntegralBase_HAL(int fBase)
{
    int answer;

    switch (fBase) {
    case TYPE_BASE_CINT:
    case TYPE_BASE_INT:
        answer = 1;
        break;
    default:
        answer = 0;
        break;
    }
    return answer;
} // IsIntegralBase_HAL

/*
 * IsTexobjBase_HAL() - Is fBase a texture object type?
 *
 */

static int IsTexobjBase_HAL(int fBase)
{
    return 0;
} // IsTexobjBase_HAL

/*
 * IsValidRuntimeBase_HAL() - Are runtime variables with a base of fBase supported?
 *         In other words, can a non-const variable of this base be declared in this profile?
 *
 */

static int IsValidRuntimeBase_HAL(int fBase)
{
    int answer;

    switch (fBase) {
    case TYPE_BASE_FLOAT:
        answer = 1;
        break;
    default:
        answer = 0;
        break;
    }
    return answer;
} // IsIntegralBase_HAL

/*
 * GetBinOpBase_HAL() - Return the base type for this binary operation.
 *
 */

static int GetBinOpBase_HAL(int lop, int lbase, int rbase, int llen, int rlen)
{
    int result;

    switch (lop) {
    case VECTOR_V_OP:
    case MUL_OP:
    case DIV_OP:
    case MOD_OP:
    case ADD_OP:
    case SUB_OP:
    case SHL_OP:
    case SHR_OP:
    case LT_OP:
    case GT_OP:
    case LE_OP:
    case GE_OP:
    case EQ_OP:
    case NE_OP:
    case AND_OP:
    case XOR_OP:
    case OR_OP:
    case COND_OP:
        if (lbase == rbase) {
            result = lbase;
        } else if (lbase == TYPE_BASE_FLOAT || rbase == TYPE_BASE_FLOAT) {
            result = TYPE_BASE_FLOAT;
        } else if (lbase == TYPE_BASE_CFLOAT || rbase == TYPE_BASE_CFLOAT) {
            if (lbase == TYPE_BASE_INT || rbase == TYPE_BASE_INT) {
                result = TYPE_BASE_FLOAT;
            } else {
                result = TYPE_BASE_CFLOAT;
            }
        } else {
            result = TYPE_BASE_INT;
        }
        break;
    default:
        result = TYPE_BASE_NO_TYPE;
        break;
    };
    return result;
} // GetBinOpBase_HAL

/*
 * ConvertConstant()_HAL - Convert a numeric scalar constant from one base type to another.
 *
 */

static int ConvertConstant_HAL(const scalar_constant *fval, int fbase, int tbase, expr **fexpr)
{
    expr *lexpr = NULL;

    switch (fbase) {
    case TYPE_BASE_CFLOAT:
    case TYPE_BASE_FLOAT:
        switch (tbase) {
        case TYPE_BASE_CFLOAT:
        case TYPE_BASE_FLOAT:
            lexpr = (expr *) NewFConstNode(FCONST_OP, fval->f, tbase);
            *fexpr = lexpr;
            break;
        case TYPE_BASE_CINT:
        case TYPE_BASE_INT:
            lexpr = (expr *) NewIConstNode(ICONST_OP, (int) fval->f, tbase);
            *fexpr = lexpr;
            break;
        default:
            return 0;
        }
        break;
    case TYPE_BASE_CINT:
    case TYPE_BASE_INT:
        switch (tbase) {
        case TYPE_BASE_CFLOAT:
        case TYPE_BASE_FLOAT:
            lexpr = (expr *) NewFConstNode(FCONST_OP, (float) fval->i, tbase);
            *fexpr = lexpr;
            break;
        case TYPE_BASE_CINT:
        case TYPE_BASE_INT:
            lexpr = (expr *) NewIConstNode(ICONST_OP, fval->i, tbase);
            *fexpr = lexpr;
            break;
        default:
            return 0;
        }
        break;
    default:
        return 0;
    }
    return 1;
} // ConvertConstant_HAL

/*
 * BindUniformUnbound_HAL() - Bind an unbound variable to a free uniform resource.
 *
 */

static int BindUniformUnbound_HAL(SourceLoc *loc, Symbol *fSymb, Binding *lBind)
{
    return 0;
} // BindUniformUnbound_HAL

/*
 * BindUniformPragma_HAL() - Bind a variable to a uniform resource based on a #pragma bind.
 *
 */

static int BindUniformPragma_HAL(SourceLoc *loc, Symbol *fSymb, Binding *lBind,
                                 const Binding *fBind)
{
    return 0;
} // BindUniformPragma_HAL

/*
 * BindVaryingSemantic_HAL() - Bind a variable to a specific varying semantic.
 *
 */

static int BindVaryingSemantic_HAL(SourceLoc *loc, Symbol *fSymb, int semantic,
                                              Binding *fBind, int IsOutVal)
{
    return 0;
} // BindVaryingSemantic_HAL

/*
 * BindVaryingPragma_HAL() - Bind a variable to a varying resource based on a #pragma bind.
 *
 */

static int BindVaryingPragma_HAL(SourceLoc *loc, Symbol *fSymb, Binding *lBind,
                                 const Binding *fBind, int IsOutVal)
{
    return 0;
} // BindVaryingPragma_HAL

/*
 * BindVaryingUnbound_HAL() - Bind a variable with no binding information to a varying resource.
 *
 */

static int BindVaryingUnbound_HAL(SourceLoc *loc, Symbol *fSymb, int name, int connector,
                                  Binding *fBind, int IsOutVal)
{
    return 0;
} // BindVaryingUnbound_HAL

/*
 * PrintCodeHeader_HAL() - Dummy header output.
 *
 */

static int PrintCodeHeader_HAL(FILE *out)

{
    InternalError(Cg->tokenLoc, ERROR_S_NO_CODE_HEADER, GetAtomString(atable, Cg->theHAL->profileName));
    return 1;
} // PrintCodeHeader_HAL

/*
 * GenerateCode_HAL() - Dummy code generator.
 *
 */

static int GenerateCode_HAL(SourceLoc *loc, Scope *fScope, Symbol *program)
{
    InternalError(Cg->tokenLoc, ERROR_S_NO_CODE_GENERATOR, GetAtomString(atable, Cg->theHAL->profileName));
    return 1;
} // GenerateCode_HAL

///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////// End of hal.c ////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频在线第一区 | 午夜国产精品一区| 欧美午夜一区二区| 亚洲成a天堂v人片| 欧美二区在线观看| 理论片日本一区| 久久先锋资源网| 色综合久久中文综合久久97| 亚洲免费观看高清| 欧美精品久久一区二区三区| 免费观看一级欧美片| 精品国产人成亚洲区| 日韩中文字幕不卡| 97精品久久久午夜一区二区三区| 激情成人综合网| 国产九色sp调教91| 色94色欧美sute亚洲13| 色网站国产精品| 日韩视频在线一区二区| 久久久久久久综合日本| 一卡二卡欧美日韩| 三级不卡在线观看| 欧美成人性战久久| 久久精品免费观看| 精品粉嫩超白一线天av| a级高清视频欧美日韩| 亚洲一区二区三区四区在线观看| 欧美欧美午夜aⅴ在线观看| 欧美精品一区二区精品网| 一区2区3区在线看| 精品系列免费在线观看| 91日韩精品一区| 精品少妇一区二区| 一区二区激情小说| 懂色av一区二区三区免费观看| 色综合天天综合在线视频| 国产精品第一页第二页第三页| 精品无人码麻豆乱码1区2区| 成人性生交大片免费看中文网站| 欧美日韩国产首页| 国产精品无人区| 国产揄拍国内精品对白| 日韩一区二区免费在线观看| 日本特黄久久久高潮| 成av人片一区二区| 亚洲午夜精品网| 极品美女销魂一区二区三区 | 一区二区三区欧美视频| 天天综合网天天综合色| 欧美激情资源网| 久久综合国产精品| 奇米777欧美一区二区| 日韩欧美一二三区| 欧美色爱综合网| 99久久99精品久久久久久 | 亚洲天堂久久久久久久| 精品欧美一区二区三区精品久久| 91黄色激情网站| 色悠悠久久综合| 亚洲卡通欧美制服中文| 色综合视频在线观看| 国产精品传媒入口麻豆| 国产很黄免费观看久久| 久久久精品国产免费观看同学| 亚洲成人av免费| 91麻豆精品国产综合久久久久久 | 国产精品拍天天在线| 亚洲欧美激情小说另类| 国产欧美日韩综合精品一区二区 | 欧美va天堂va视频va在线| 欧美人动与zoxxxx乱| 在线免费观看一区| 日韩精品在线一区二区| 在线电影院国产精品| 欧美日韩在线三级| 欧美蜜桃一区二区三区| 宅男在线国产精品| 日韩女优av电影在线观看| 日韩欧美你懂的| 久久综合五月天婷婷伊人| 精品国产乱码久久久久久图片| 欧美精品一区二区在线播放| 精品久久久久久久久久久久包黑料 | 久久久久久免费网| 中文字幕欧美激情| 中文字幕一区二区三区av| 亚洲精选视频免费看| 亚洲成人激情自拍| 麻豆精品在线播放| 福利一区二区在线| 色欧美日韩亚洲| 欧美精品日韩精品| 久久综合色之久久综合| 日本中文字幕一区二区有限公司| 日韩激情视频网站| 国产主播一区二区三区| 99国产一区二区三精品乱码| 色天天综合色天天久久| 制服丝袜亚洲播放| 国产亚洲一二三区| 亚洲激情男女视频| 麻豆久久一区二区| 99热精品国产| 欧美一级一级性生活免费录像| 欧美变态口味重另类| 亚洲色图在线看| 美腿丝袜亚洲综合| 成人国产免费视频| 7777精品伊人久久久大香线蕉最新版| 久久中文字幕电影| 亚洲精品日产精品乱码不卡| 日本午夜精品视频在线观看 | 欧美成人一区二区三区片免费| 国产欧美一区二区精品久导航| 亚洲另类在线一区| 欧美综合一区二区| 日韩一区二区三区观看| 国产精品白丝在线| 日韩在线a电影| 高清不卡在线观看| 欧美巨大另类极品videosbest| 国产亚洲欧美色| 亚洲成人av福利| 成人爱爱电影网址| 日韩精品一区在线观看| 亚洲欧美日韩电影| 国产91精品免费| 日韩欧美二区三区| 亚洲一区二区在线免费看| 国产真实精品久久二三区| 在线亚洲精品福利网址导航| 国产色一区二区| 麻豆专区一区二区三区四区五区| 成人av第一页| 久久久久综合网| 免费看日韩a级影片| 色综合久久久久综合体| 国产欧美久久久精品影院 | 国产精品99久久久| 亚洲乱码中文字幕综合| 国产一区三区三区| 日韩一区二区在线看| 亚洲午夜影视影院在线观看| 大胆欧美人体老妇| 久久久99精品久久| 久久精品国产99国产精品| 4438x亚洲最大成人网| 一区二区理论电影在线观看| 不卡在线视频中文字幕| 欧美国产日本韩| 国产一区二区中文字幕| 日韩一区二区高清| 日本在线不卡视频| 欧美日韩在线精品一区二区三区激情| 国产精品久久久久aaaa| 成人精品小蝌蚪| 国产欧美一区二区精品久导航 | 日韩一区二区三区av| 日韩精品免费专区| 欧美日韩大陆一区二区| 亚洲mv在线观看| 欧美三级中文字| 亚洲国产日产av| 欧美日韩一区二区在线观看视频| 亚洲精品一二三区| 日韩一级完整毛片| 蜜乳av一区二区| 日韩美女视频在线| 六月婷婷色综合| 精品粉嫩超白一线天av| 欧美精品欧美精品系列| 精品一区二区三区日韩| 国产精品视频免费看| 欧美日韩dvd在线观看| 九九视频精品免费| 亚洲一线二线三线久久久| 日韩一区二区三区免费看| youjizz久久| 久久99精品国产麻豆不卡| 中文字幕在线视频一区| 欧美疯狂做受xxxx富婆| 国产成人夜色高潮福利影视| 日日骚欧美日韩| 国产日产精品一区| 欧美精品丝袜中出| 成人av在线影院| 国产成人99久久亚洲综合精品| 亚洲二区在线视频| 亚洲欧洲色图综合| 久久精品视频在线看| 国产精品高潮呻吟| 国产日韩精品一区| 日韩电影免费一区| 麻豆精品视频在线观看| 国产乱码精品1区2区3区| 一区二区三区免费网站| 久久精品免费在线观看| 精品国产一区二区三区不卡 | 波多野结衣在线aⅴ中文字幕不卡| 一道本成人在线|