您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GR_GL_VER函数代码示例

51自学网 2021-06-01 20:55:32
  C++
这篇教程C++ GR_GL_VER函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GR_GL_VER函数的典型用法代码示例。如果您正苦于以下问题:C++ GR_GL_VER函数的具体用法?C++ GR_GL_VER怎么用?C++ GR_GL_VER使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GR_GL_VER函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: GrGpuGL

GrGpuGLShaders::GrGpuGLShaders(const GrGLContextInfo& ctxInfo)    : GrGpuGL(ctxInfo) {    // Enable supported shader-related caps    if (kDesktop_GrGLBinding == this->glBinding()) {        fCaps.fDualSourceBlendingSupport =                            this->glVersion() >= GR_GL_VER(3,3) ||                            this->hasExtension("GL_ARB_blend_func_extended");        fCaps.fShaderDerivativeSupport = true;        // we don't support GL_ARB_geometry_shader4, just GL 3.2+ GS        fCaps.fGeometryShaderSupport =                                 this->glVersion() >= GR_GL_VER(3,2) &&                                this->glslGeneration() >= k150_GrGLSLGeneration;    } else {        fCaps.fShaderDerivativeSupport =                            this->hasExtension("GL_OES_standard_derivatives");    }    GR_GL_GetIntegerv(this->glInterface(),                      GR_GL_MAX_VERTEX_ATTRIBS,                      &fMaxVertexAttribs);    fProgramData = NULL;    fProgramCache = new ProgramCache(this->glContextInfo());#if 0    this->programUnitTest();#endif}
开发者ID:Beifeng,项目名称:WTL-DUI,代码行数:29,


示例2: if

void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) {    fMSFBOType = kNone_MSFBOType;    if (kGL_GrGLStandard != ctxInfo.standard()) {        // We prefer the EXT/IMG extension over ES3 MSAA because we've observed        // ES3 driver bugs on at least one device with a tiled GPU (N10).        if (ctxInfo.hasExtension("GL_EXT_multisampled_render_to_texture")) {            fMSFBOType = kES_EXT_MsToTexture_MSFBOType;        } else if (ctxInfo.hasExtension("GL_IMG_multisampled_render_to_texture")) {            fMSFBOType = kES_IMG_MsToTexture_MSFBOType;        } else if (ctxInfo.version() >= GR_GL_VER(3,0)) {            fMSFBOType = GrGLCaps::kES_3_0_MSFBOType;        } else if (ctxInfo.hasExtension("GL_CHROMIUM_framebuffer_multisample")) {            // chrome's extension is equivalent to the EXT msaa            // and fbo_blit extensions.            fMSFBOType = kDesktop_EXT_MSFBOType;        } else if (ctxInfo.hasExtension("GL_APPLE_framebuffer_multisample")) {            fMSFBOType = kES_Apple_MSFBOType;        }    } else {        if ((ctxInfo.version() >= GR_GL_VER(3,0)) ||            ctxInfo.hasExtension("GL_ARB_framebuffer_object")) {            fMSFBOType = GrGLCaps::kDesktop_ARB_MSFBOType;        } else if (ctxInfo.hasExtension("GL_EXT_framebuffer_multisample") &&                   ctxInfo.hasExtension("GL_EXT_framebuffer_blit")) {            fMSFBOType = GrGLCaps::kDesktop_EXT_MSFBOType;        }    }}
开发者ID:Jimmy0319,项目名称:skia,代码行数:29,


示例3: GrGpuGL

GrGpuGLShaders::GrGpuGLShaders(const GrGLInterface* gl)    : GrGpuGL(gl, get_binding_in_use(gl)) {    GrGLSLGeneration glslGeneration =        GetGLSLGeneration(this->glBinding(), gl);    // Enable supported shader-releated caps    fCaps.fShaderSupport = true;    fCaps.fSupportPerVertexCoverage = true;    if (kDesktop_GrGLBinding == this->glBinding()) {        fCaps.fDualSourceBlendingSupport =            this->glVersion() >= GR_GL_VER(3,3) ||            this->hasExtension("GL_ARB_blend_func_extended");        fCaps.fShaderDerivativeSupport = true;        // we don't support GL_ARB_geometry_shader4, just GL 3.2+ GS        fCaps.fGeometryShaderSupport =            this->glVersion() >= GR_GL_VER(3,2) &&            glslGeneration >= k150_GLSLGeneration;    } else {        fCaps.fShaderDerivativeSupport =            this->hasExtension("GL_OES_standard_derivatives");    }    GR_GL_GetIntegerv(gl, GR_GL_MAX_VERTEX_ATTRIBS, &fMaxVertexAttribs);    fProgramData = NULL;    fProgramCache = new ProgramCache(gl, glslGeneration);#if 0    this->programUnitTest();#endif}
开发者ID:skaslev,项目名称:XobotOS,代码行数:32,


示例4: GrGLGetVersionFromString

GrGLVersion GrGLGetVersionFromString(const char* versionString) {    if (NULL == versionString) {        GrAssert(!"NULL GL version string.");        return 0;    }    int major, minor;    int n = sscanf(versionString, "%d.%d", &major, &minor);    if (2 == n) {        return GR_GL_VER(major, minor);    }    char profile[2];    n = sscanf(versionString, "OpenGL ES-%c%c %d.%d", profile, profile+1,               &major, &minor);    if (4 == n) {        return GR_GL_VER(major, minor);    }    n = sscanf(versionString, "OpenGL ES %d.%d", &major, &minor);    if (2 == n) {        return GR_GL_VER(major, minor);    }    return 0;}
开发者ID:imirceah,项目名称:android_external_skia,代码行数:27,


示例5: GrGLGetVersionFromString

GrGLVersion GrGLGetVersionFromString(const char* versionString) {    if (nullptr == versionString) {        SkDebugf("nullptr GL version string.");        return GR_GL_INVALID_VER;    }    int major, minor;    // check for mesa    int mesaMajor, mesaMinor;    int n = sscanf(versionString, "%d.%d Mesa %d.%d", &major, &minor, &mesaMajor, &mesaMinor);    if (4 == n) {        return GR_GL_VER(major, minor);    }    n = sscanf(versionString, "%d.%d", &major, &minor);    if (2 == n) {        return GR_GL_VER(major, minor);    }    char profile[2];    n = sscanf(versionString, "OpenGL ES-%c%c %d.%d", profile, profile+1,               &major, &minor);    if (4 == n) {        return GR_GL_VER(major, minor);    }    n = sscanf(versionString, "OpenGL ES %d.%d", &major, &minor);    if (2 == n) {        return GR_GL_VER(major, minor);    }    return GR_GL_INVALID_VER;}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:34,


示例6: GR_GL_VER

void GrGLCaps::initStencilFormats(const GrGLContextInfo& ctxInfo) {    // Build up list of legal stencil formats (though perhaps not supported on    // the particular gpu/driver) from most preferred to least.    // these consts are in order of most preferred to least preferred    // we don't bother with GL_STENCIL_INDEX1 or GL_DEPTH32F_STENCIL8    static const StencilFormat                  // internal Format      stencil bits      total bits        packed?        gS8    = {GR_GL_STENCIL_INDEX8,   8,                8,                false},        gS16   = {GR_GL_STENCIL_INDEX16,  16,               16,               false},        gD24S8 = {GR_GL_DEPTH24_STENCIL8, 8,                32,               true },        gS4    = {GR_GL_STENCIL_INDEX4,   4,                4,                false},    //  gS     = {GR_GL_STENCIL_INDEX,    kUnknownBitCount, kUnknownBitCount, false},        gDS    = {GR_GL_DEPTH_STENCIL,    kUnknownBitCount, kUnknownBitCount, true };    if (kGL_GrGLStandard == ctxInfo.standard()) {        bool supportsPackedDS =            ctxInfo.version() >= GR_GL_VER(3,0) ||            ctxInfo.hasExtension("GL_EXT_packed_depth_stencil") ||            ctxInfo.hasExtension("GL_ARB_framebuffer_object");        // S1 thru S16 formats are in GL 3.0+, EXT_FBO, and ARB_FBO since we        // require FBO support we can expect these are legal formats and don't        // check. These also all support the unsized GL_STENCIL_INDEX.        fStencilFormats.push_back() = gS8;        fStencilFormats.push_back() = gS16;        if (supportsPackedDS) {            fStencilFormats.push_back() = gD24S8;        }        fStencilFormats.push_back() = gS4;        if (supportsPackedDS) {            fStencilFormats.push_back() = gDS;        }    } else {        // ES2 has STENCIL_INDEX8 without extensions but requires extensions        // for other formats.        // ES doesn't support using the unsized format.        fStencilFormats.push_back() = gS8;        //fStencilFormats.push_back() = gS16;        if (ctxInfo.version() >= GR_GL_VER(3,0) ||            ctxInfo.hasExtension("GL_OES_packed_depth_stencil")) {            fStencilFormats.push_back() = gD24S8;        }        if (ctxInfo.hasExtension("GL_OES_stencil4")) {            fStencilFormats.push_back() = gS4;        }    }    SkASSERT(0 == fStencilVerifiedColorConfigs.count());    fStencilVerifiedColorConfigs.push_back_n(fStencilFormats.count());}
开发者ID:Jimmy0319,项目名称:skia,代码行数:53,


示例7: ret

SkGLContext::GLFenceSync* SkGLContext::GLFenceSync::CreateIfSupported(const SkGLContext* ctx) {    SkAutoTDelete<GLFenceSync> ret(new GLFenceSync);    if (kGL_GrGLStandard == ctx->gl()->fStandard) {        const GrGLubyte* versionStr;        SK_GL_RET(*ctx, versionStr, GetString(GR_GL_VERSION));        GrGLVersion version = GrGLGetVersionFromString(reinterpret_cast<const char*>(versionStr));        if (version < GR_GL_VER(3,2) && !ctx->gl()->hasExtension("GL_ARB_sync")) {            return nullptr;        }        ret->fGLFenceSync = reinterpret_cast<GLFenceSyncProc>(            ctx->onPlatformGetProcAddress("glFenceSync"));        ret->fGLClientWaitSync = reinterpret_cast<GLClientWaitSyncProc>(            ctx->onPlatformGetProcAddress("glClientWaitSync"));        ret->fGLDeleteSync = reinterpret_cast<GLDeleteSyncProc>(            ctx->onPlatformGetProcAddress("glDeleteSync"));    } else {        if (!ctx->gl()->hasExtension("GL_APPLE_sync")) {            return nullptr;        }        ret->fGLFenceSync = reinterpret_cast<GLFenceSyncProc>(            ctx->onPlatformGetProcAddress("glFenceSyncAPPLE"));        ret->fGLClientWaitSync = reinterpret_cast<GLClientWaitSyncProc>(            ctx->onPlatformGetProcAddress("glClientWaitSyncAPPLE"));        ret->fGLDeleteSync = reinterpret_cast<GLDeleteSyncProc>(            ctx->onPlatformGetProcAddress("glDeleteSyncAPPLE"));    }    if (!ret->fGLFenceSync || !ret->fGLClientWaitSync || !ret->fGLDeleteSync) {        return nullptr;    }    return ret.detach();}
开发者ID:Crawping,项目名称:chromium_extract,代码行数:34,


示例8: createTextureRectangle

GrGLint GLTestContext::createTextureRectangle(int width, int height, GrGLenum internalFormat,                                          GrGLenum externalFormat, GrGLenum externalType,                                          GrGLvoid* data) {    if (!(kGL_GrGLStandard == fGL->fStandard && GrGLGetVersion(fGL) >= GR_GL_VER(3, 1)) &&        !fGL->fExtensions.has("GL_ARB_texture_rectangle")) {        return 0;    }    if  (GrGLGetGLSLVersion(fGL) < GR_GLSL_VER(1, 40)) {        return 0;    }    GrGLuint id;    GR_GL_CALL(fGL, GenTextures(1, &id));    GR_GL_CALL(fGL, BindTexture(GR_GL_TEXTURE_RECTANGLE, id));    GR_GL_CALL(fGL, TexParameteri(GR_GL_TEXTURE_RECTANGLE, GR_GL_TEXTURE_MAG_FILTER,                                  GR_GL_NEAREST));    GR_GL_CALL(fGL, TexParameteri(GR_GL_TEXTURE_RECTANGLE, GR_GL_TEXTURE_MIN_FILTER,                                  GR_GL_NEAREST));    GR_GL_CALL(fGL, TexParameteri(GR_GL_TEXTURE_RECTANGLE, GR_GL_TEXTURE_WRAP_S,                                  GR_GL_CLAMP_TO_EDGE));        GR_GL_CALL(fGL, TexParameteri(GR_GL_TEXTURE_RECTANGLE, GR_GL_TEXTURE_WRAP_T,                                  GR_GL_CLAMP_TO_EDGE));    GR_GL_CALL(fGL, TexImage2D(GR_GL_TEXTURE_RECTANGLE, 0, internalFormat, width, height, 0,                               externalFormat, externalType, data));    return id;}
开发者ID:03050903,项目名称:skia,代码行数:27,


示例9: getString

bool GrGLExtensions::init(GrGLStandard standard,                          GrGLGetStringProc getString,                          GrGLGetStringiProc getStringi,                          GrGLGetIntegervProc getIntegerv) {    fInitialized = false;    fStrings->reset();    if (NULL == getString) {        return false;    }    // glGetStringi and indexed extensions were added in version 3.0 of desktop GL and ES.    const GrGLubyte* verString = getString(GR_GL_VERSION);    GrGLVersion version = GrGLGetVersionFromString((const char*) verString);    if (GR_GL_INVALID_VER == version) {        return false;    }    bool indexed = version >= GR_GL_VER(3, 0);    if (indexed) {        if (NULL == getStringi || NULL == getIntegerv) {            return false;        }        GrGLint extensionCnt = 0;        getIntegerv(GR_GL_NUM_EXTENSIONS, &extensionCnt);        fStrings->push_back_n(extensionCnt);        for (int i = 0; i < extensionCnt; ++i) {            const char* ext = (const char*) getStringi(GR_GL_EXTENSIONS, i);            (*fStrings)[i] = ext;        }    } else {        const char* extensions = (const char*) getString(GR_GL_EXTENSIONS);        if (NULL == extensions) {            return false;        }        while (true) {            // skip over multiple spaces between extensions            while (' ' == *extensions) {                ++extensions;            }            // quit once we reach the end of the string.            if ('/0' == *extensions) {                break;            }            // we found an extension            size_t length = strcspn(extensions, " ");            fStrings->push_back().set(extensions, length);            extensions += length;        }    }    if (!fStrings->empty()) {        SkTLessFunctionToFunctorAdaptor<SkString, extension_compare> cmp;        SkTQSort(&fStrings->front(), &fStrings->back(), cmp);    }    fInitialized = true;    return true;}
开发者ID:venkatarajasekhar,项目名称:Qt,代码行数:58,


示例10: SkiaGrGLInterfaceGLVersionGreaterThanOrEqualTo

extern "C" boolSkiaGrGLInterfaceGLVersionGreaterThanOrEqualTo(SkiaGrGLInterfaceRef aGrGLInterface, int32_t major, int32_t minor) {    const GrGLubyte* versionUByte;    GR_GL_CALL_RET(static_cast<const GrGLInterface*>(aGrGLInterface), versionUByte, GetString(GR_GL_VERSION));    const char* version = reinterpret_cast<const char*>(versionUByte);    GrGLVersion glVersion = GrGLGetVersionFromString(version);    return GR_GL_INVALID_VER != glVersion && glVersion >= GR_GL_VER(major, minor);}
开发者ID:CODECOMMUNITY,项目名称:skia-snapshots,代码行数:9,


示例11: GR_GL_VER

void GrGLContextInfo::reset() {    fBindingInUse = kNone_GrGLBinding;    fGLVersion = GR_GL_VER(0, 0);    fGLSLGeneration = static_cast<GrGLSLGeneration>(0);    fVendor = kOther_GrGLVendor;    fIsMesa = false;    fExtensions.reset();    fGLCaps->reset();}
开发者ID:IllusionRom-deprecated,项目名称:android_platform_external_chromium_org_third_party_skia_src,代码行数:9,


示例12: GR_GL_VER

void GrGLContextInfo::reset() {    fInterface.reset(NULL);    fGLVersion = GR_GL_VER(0, 0);    fGLSLGeneration = static_cast<GrGLSLGeneration>(0);    fVendor = kOther_GrGLVendor;    fRenderer = kOther_GrGLRenderer;    fIsMesa = false;    fIsChromium = false;    fGLCaps->reset();}
开发者ID:Ashu17,项目名称:blackberry,代码行数:10,


示例13: initShaderPrecisionTable

void GrGLSLCaps::initShaderPrecisionTable(const GrGLContextInfo& ctxInfo,        const GrGLInterface* intf) {    if (kGLES_GrGLStandard == ctxInfo.standard() || ctxInfo.version() >= GR_GL_VER(4, 1) ||            ctxInfo.hasExtension("GL_ARB_ES2_compatibility")) {        for (int s = 0; s < kGrShaderTypeCount; ++s) {            if (kGeometry_GrShaderType != s) {                GrShaderType shaderType = static_cast<GrShaderType>(s);                GrGLenum glShader = shader_type_to_gl_shader(shaderType);                PrecisionInfo* first = NULL;                fShaderPrecisionVaries = false;                for (int p = 0; p < kGrSLPrecisionCount; ++p) {                    GrSLPrecision precision = static_cast<GrSLPrecision>(p);                    GrGLenum glPrecision = precision_to_gl_float_type(precision);                    GrGLint range[2];                    GrGLint bits;                    GR_GL_GetShaderPrecisionFormat(intf, glShader, glPrecision, range, &bits);                    if (bits) {                        fFloatPrecisions[s][p].fLogRangeLow = range[0];                        fFloatPrecisions[s][p].fLogRangeHigh = range[1];                        fFloatPrecisions[s][p].fBits = bits;                        if (!first) {                            first = &fFloatPrecisions[s][p];                        }                        else if (!fShaderPrecisionVaries) {                            fShaderPrecisionVaries = (*first != fFloatPrecisions[s][p]);                        }                    }                }            }        }    }    else {        // We're on a desktop GL that doesn't have precision info. Assume they're all 32bit float.        fShaderPrecisionVaries = false;        for (int s = 0; s < kGrShaderTypeCount; ++s) {            if (kGeometry_GrShaderType != s) {                for (int p = 0; p < kGrSLPrecisionCount; ++p) {                    fFloatPrecisions[s][p].fLogRangeLow = 127;                    fFloatPrecisions[s][p].fLogRangeHigh = 127;                    fFloatPrecisions[s][p].fBits = 23;                }            }        }    }    // GetShaderPrecisionFormat doesn't accept GL_GEOMETRY_SHADER as a shader type. Assume they're    // the same as the vertex shader. Only fragment shaders were ever allowed to omit support for    // highp. GS was added after GetShaderPrecisionFormat was added to the list of features that    // are recommended against.    if (fGeometryShaderSupport) {        for (int p = 0; p < kGrSLPrecisionCount; ++p) {            fFloatPrecisions[kGeometry_GrShaderType][p] = fFloatPrecisions[kVertex_GrShaderType][p];        }    }}
开发者ID:rickdynasty,项目名称:platform_external_skia,代码行数:54,


示例14: getString

bool GrGLExtensions::init(GrGLBinding binding,                          GrGLGetStringProc getString,                          GrGLGetStringiProc getStringi,                          GrGLGetIntegervProc getIntegerv) {    fStrings.reset();    if (NULL == getString) {        return false;    }    bool indexed = false;    if (kDesktop_GrGLBinding == binding) {        const GrGLubyte* verString = getString(GR_GL_VERSION);        if (NULL == verString) {            return false;        }        GrGLVersion version = GrGLGetVersionFromString((const char*) verString);        indexed = version >= GR_GL_VER(3, 0);    }    if (indexed) {        if (NULL == getStringi || NULL == getIntegerv) {            return false;        }        GrGLint extensionCnt = 0;        getIntegerv(GR_GL_NUM_EXTENSIONS, &extensionCnt);        fStrings.push_back_n(extensionCnt);        for (int i = 0; i < extensionCnt; ++i) {            const char* ext = (const char*) getStringi(GR_GL_EXTENSIONS, i);            fStrings[i] = ext;        }    } else {        const char* extensions = (const char*) getString(GR_GL_EXTENSIONS);        if (NULL == extensions) {            return false;        }        while (true) {            // skip over multiple spaces between extensions            while (' ' == *extensions) {                ++extensions;            }            // quit once we reach the end of the string.            if ('/0' == *extensions) {                break;            }            // we found an extension            size_t length = strcspn(extensions, " ");            fStrings.push_back().set(extensions, length);            extensions += length;        }    }    if (0 != fStrings.count()) {        SkTLessFunctionToFunctorAdaptor<SkString, extension_compare> cmp;        SkTQSort(&fStrings.front(), &fStrings.back(), cmp);    }    return true;}
开发者ID:Frankie-666,项目名称:color-emoji.skia,代码行数:54,


示例15: getString

bool GrGLExtensions::init(GrGLStandard standard,                          GrGLFunction<GrGLGetStringProc> getString,                          GrGLFunction<GrGLGetStringiProc> getStringi,                          GrGLFunction<GrGLGetIntegervProc> getIntegerv,                          GrGLFunction<GrEGLQueryStringProc> queryString,                          GrEGLDisplay eglDisplay) {    fInitialized = false;    fStrings->reset();    if (!getString) {        return false;    }    // glGetStringi and indexed extensions were added in version 3.0 of desktop GL and ES.    const GrGLubyte* verString = getString(GR_GL_VERSION);    GrGLVersion version = GrGLGetVersionFromString((const char*) verString);    if (GR_GL_INVALID_VER == version) {        return false;    }    bool indexed = version >= GR_GL_VER(3, 0);    if (indexed) {        if (!getStringi || !getIntegerv) {            return false;        }        GrGLint extensionCnt = 0;        getIntegerv(GR_GL_NUM_EXTENSIONS, &extensionCnt);        fStrings->push_back_n(extensionCnt);        for (int i = 0; i < extensionCnt; ++i) {            const char* ext = (const char*) getStringi(GR_GL_EXTENSIONS, i);            (*fStrings)[i] = ext;        }    } else {        const char* extensions = (const char*) getString(GR_GL_EXTENSIONS);        if (!extensions) {            return false;        }        eat_space_sep_strings(fStrings.get(), extensions);    }    if (queryString) {        const char* extensions = queryString(eglDisplay, GR_EGL_EXTENSIONS);        eat_space_sep_strings(fStrings.get(), extensions);    }    if (!fStrings->empty()) {        SkTLessFunctionToFunctorAdaptor<SkString, extension_compare> cmp;        SkTQSort(&fStrings->front(), &fStrings->back(), cmp);    }    fInitialized = true;    return true;}
开发者ID:MIPS,项目名称:external-skia,代码行数:52,


示例16: GrGLGetVersionFromString

GrGLVersion GrGLGetVersionFromString(const char* versionString) {    if (NULL == versionString) {        SkDEBUGFAIL("NULL GL version string.");        return 0;    }    int major, minor;    // check for mesa    int mesaMajor, mesaMinor;    int n = sscanf(versionString, "%d.%d Mesa %d.%d", &major, &minor, &mesaMajor, &mesaMinor);    if (4 == n) {        if (get_gl_version_for_mesa(mesaMajor, &major, &minor)) {            return GR_GL_VER(major, minor);        } else {            return 0;        }    }    n = sscanf(versionString, "%d.%d", &major, &minor);    if (2 == n) {        return GR_GL_VER(major, minor);    }    char profile[2];    n = sscanf(versionString, "OpenGL ES-%c%c %d.%d", profile, profile+1,               &major, &minor);    if (4 == n) {        return GR_GL_VER(major, minor);    }    n = sscanf(versionString, "OpenGL ES %d.%d", &major, &minor);    if (2 == n) {        return GR_GL_VER(major, minor);    }    return 0;}
开发者ID:JCROM-FxOS,项目名称:b2jc_gecko,代码行数:38,


示例17: if

void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo) {    fMSFBOType = kNone_MSFBOType;    if (kDesktop_GrGLBinding != ctxInfo.binding()) {       if (ctxInfo.hasExtension("GL_CHROMIUM_framebuffer_multisample")) {           // chrome's extension is equivalent to the EXT msaa           // and fbo_blit extensions.           fMSFBOType = kDesktopEXT_MSFBOType;       } else if (ctxInfo.hasExtension("GL_APPLE_framebuffer_multisample")) {           fMSFBOType = kAppleES_MSFBOType;       }    } else {        if ((ctxInfo.version() >= GR_GL_VER(3,0)) ||            ctxInfo.hasExtension("GL_ARB_framebuffer_object")) {            fMSFBOType = GrGLCaps::kDesktopARB_MSFBOType;        } else if (ctxInfo.hasExtension("GL_EXT_framebuffer_multisample") &&                   ctxInfo.hasExtension("GL_EXT_framebuffer_blit")) {            fMSFBOType = GrGLCaps::kDesktopEXT_MSFBOType;        }        // TODO: We could populate fMSAACoverageModes using GetInternalformativ        // on GL 4.2+. It's format-specific, though. See also        // http://code.google.com/p/skia/issues/detail?id=470 about using actual        // rather than requested sample counts in cache key.        if (ctxInfo.hasExtension("GL_NV_framebuffer_multisample_coverage")) {            fCoverageAAType = kNVDesktop_CoverageAAType;            GrGLint count;            GR_GL_GetIntegerv(ctxInfo.interface(),                              GR_GL_MAX_MULTISAMPLE_COVERAGE_MODES,                              &count);            fMSAACoverageModes.setCount(count);            GR_GL_GetIntegerv(ctxInfo.interface(),                              GR_GL_MULTISAMPLE_COVERAGE_MODES,                              (int*)&fMSAACoverageModes[0]);            // The NV driver seems to return the modes already sorted but the            // spec doesn't require this. So we sort.            SkQSortCompareProc compareProc =                reinterpret_cast<SkQSortCompareProc>(&coverage_mode_compare);            SkQSort(&fMSAACoverageModes[0],                    count,                    sizeof(MSAACoverageMode),                    compareProc);        }    }    if (kNone_MSFBOType != fMSFBOType) {        GR_GL_GetIntegerv(ctxInfo.interface(),                          GR_GL_MAX_SAMPLES,                          &fMaxSampleCount);    }}
开发者ID:lauyoume,项目名称:SkiaLib,代码行数:49,


示例18: GrGLGetGLSLGeneration

bool GrGLGetGLSLGeneration(const GrGLInterface* gl, GrGLSLGeneration* generation) {    SkASSERT(generation);    GrGLSLVersion ver = GrGLGetGLSLVersion(gl);    if (GR_GLSL_INVALID_VER == ver) {        return false;    }    switch (gl->fStandard) {        case kGL_GrGLStandard:            SkASSERT(ver >= GR_GLSL_VER(1,10));            if (ver >= GR_GLSL_VER(4,20)) {                *generation = k420_GrGLSLGeneration;            } else if (ver >= GR_GLSL_VER(4,00)) {                *generation = k400_GrGLSLGeneration;            } else if (ver >= GR_GLSL_VER(3,30)) {                *generation = k330_GrGLSLGeneration;            } else if (ver >= GR_GLSL_VER(1,50)) {                *generation = k150_GrGLSLGeneration;            } else if (ver >= GR_GLSL_VER(1,40)) {                *generation = k140_GrGLSLGeneration;            } else if (ver >= GR_GLSL_VER(1,30)) {                *generation = k130_GrGLSLGeneration;            } else {                *generation = k110_GrGLSLGeneration;            }            return true;        case kGLES_GrGLStandard:            SkASSERT(ver >= GR_GL_VER(1,00));            if (ver >= GR_GLSL_VER(3,20)) {                *generation = k320es_GrGLSLGeneration;            } else if (ver >= GR_GLSL_VER(3,10)) {                *generation = k310es_GrGLSLGeneration;            } else if (ver >= GR_GLSL_VER(3,00)) {                *generation = k330_GrGLSLGeneration;            } else {                *generation = k110_GrGLSLGeneration;            }            return true;        default:            SK_ABORT("Unknown GL Standard");            return false;    }}
开发者ID:android,项目名称:platform_external_skia,代码行数:42,


示例19: if

void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo) {    fMSFBOType = kNone_MSFBOType;    if (kDesktop_GrGLBinding != ctxInfo.binding()) {       if (ctxInfo.hasExtension("GL_CHROMIUM_framebuffer_multisample")) {           // chrome's extension is equivalent to the EXT msaa           // and fbo_blit extensions.           fMSFBOType = kDesktopEXT_MSFBOType;       } else if (ctxInfo.hasExtension("GL_APPLE_framebuffer_multisample")) {            fMSFBOType = kAppleES_MSFBOType;        }    } else {        if ((ctxInfo.version() >= GR_GL_VER(3,0)) ||            ctxInfo.hasExtension("GL_ARB_framebuffer_object")) {            fMSFBOType = GrGLCaps::kDesktopARB_MSFBOType;        } else if (ctxInfo.hasExtension("GL_EXT_framebuffer_multisample") &&                   ctxInfo.hasExtension("GL_EXT_framebuffer_blit")) {            fMSFBOType = GrGLCaps::kDesktopEXT_MSFBOType;        }    }}
开发者ID:ghub,项目名称:NVprSDK,代码行数:21,


示例20: GrGetGLSLGeneration

GrGLSLGeneration GrGetGLSLGeneration(GrGLBinding binding,                                     const GrGLInterface* gl) {    GrGLSLVersion ver = GrGLGetGLSLVersion(gl);    switch (binding) {    case kDesktop_GrGLBinding:        GrAssert(ver >= GR_GLSL_VER(1,10));        if (ver >= GR_GLSL_VER(1,50)) {            return k150_GrGLSLGeneration;        } else if (ver >= GR_GLSL_VER(1,30)) {            return k130_GrGLSLGeneration;        } else {            return k110_GrGLSLGeneration;        }    case kES2_GrGLBinding:        // version 1.00 of ES GLSL based on ver 1.20 of desktop GLSL        GrAssert(ver >= GR_GL_VER(1,00));        return k110_GrGLSLGeneration;    default:        GrCrash("Unknown GL Binding");        return k110_GrGLSLGeneration; // suppress warning    }}
开发者ID:Beifeng,项目名称:WTL-DUI,代码行数:22,


示例21: GrGLCreateNativeInterface

const GrGLInterface* GrGLCreateNativeInterface() {    if (NULL != glXGetCurrentContext()) {        const char* versionString = (const char*) glGetString(GL_VERSION);        const char* extString = (const char*) glGetString(GL_EXTENSIONS);        GrGLVersion glVer = GrGLGetVersionFromString(versionString);        if (glVer < GR_GL_VER(1,5)) {            // We must have array and element_array buffer objects.            return NULL;        }        GrGLInterface* interface = new GrGLInterface();        interface->fActiveTexture = glActiveTexture;        GR_GL_GET_PROC(AttachShader);        GR_GL_GET_PROC(BindAttribLocation);        GR_GL_GET_PROC(BindBuffer);        GR_GL_GET_PROC(BindFragDataLocation);        GR_GL_GET_PROC(BeginQuery);        interface->fBindTexture = glBindTexture;        interface->fBlendFunc = glBlendFunc;        if (glVer >= GR_GL_VER(1,4) ||            GrGLHasExtensionFromString("GL_ARB_imaging", extString)) {            GR_GL_GET_PROC(BlendColor);            GR_GL_GET_PROC(BlendEquation);        } else {            if (GrGLHasExtensionFromString("GL_EXT_blend_color", extString)) {                GR_GL_GET_PROC_SUFFIX(BlendColor, EXT);            }             if (GrGLHasExtensionFromString("GL_EXT_blend_minmax", extString) ||                GrGLHasExtensionFromString("GL_EXT_blend_subtract", extString)) {                GR_GL_GET_PROC_SUFFIX(BlendEquation, EXT);            }         }         GR_GL_GET_PROC(BufferData);        GR_GL_GET_PROC(BufferSubData);        interface->fClear = glClear;        interface->fClearColor = glClearColor;        interface->fClearStencil = glClearStencil;        interface->fColorMask = glColorMask;        interface->fColorPointer = glColorPointer;        GR_GL_GET_PROC(CompileShader);        interface->fCompressedTexImage2D = glCompressedTexImage2D;        GR_GL_GET_PROC(CreateProgram);        GR_GL_GET_PROC(CreateShader);        interface->fCullFace = glCullFace;        GR_GL_GET_PROC(DeleteBuffers);        GR_GL_GET_PROC(DeleteProgram);        GR_GL_GET_PROC(DeleteQueries);        GR_GL_GET_PROC(DeleteShader);        interface->fDeleteTextures = glDeleteTextures;        interface->fDepthMask = glDepthMask;        interface->fDisable = glDisable;        GR_GL_GET_PROC(DisableVertexAttribArray);        interface->fDrawArrays = glDrawArrays;        interface->fDrawBuffer = glDrawBuffer;        GR_GL_GET_PROC(DrawBuffers);        interface->fDrawElements = glDrawElements;        interface->fEnable = glEnable;        GR_GL_GET_PROC(EnableVertexAttribArray);        GR_GL_GET_PROC(EndQuery);        interface->fFinish = glFinish;        interface->fFlush = glFlush;        interface->fFrontFace = glFrontFace;        GR_GL_GET_PROC(GenBuffers);        GR_GL_GET_PROC(GetBufferParameteriv);        interface->fGetError = glGetError;        interface->fGetIntegerv = glGetIntegerv;        GR_GL_GET_PROC(GetQueryObjectiv);        GR_GL_GET_PROC(GetQueryObjectuiv);        if (glVer >= GR_GL_VER(3,3) ||            GrGLHasExtensionFromString("GL_ARB_timer_query", extString)) {            GR_GL_GET_PROC(GetQueryObjecti64v);            GR_GL_GET_PROC(GetQueryObjectui64v);            GR_GL_GET_PROC(QueryCounter);        } else if (GrGLHasExtensionFromString("GL_EXT_timer_query", extString)) {            GR_GL_GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);            GR_GL_GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);        }        GR_GL_GET_PROC(GetQueryiv);        GR_GL_GET_PROC(GetProgramInfoLog);        GR_GL_GET_PROC(GetProgramiv);        GR_GL_GET_PROC(GetShaderInfoLog);        GR_GL_GET_PROC(GetShaderiv);        interface->fGetString = glGetString;        interface->fGetTexLevelParameteriv = glGetTexLevelParameteriv;        GR_GL_GET_PROC(GenQueries);        interface->fGenTextures = glGenTextures;        GR_GL_GET_PROC(GetUniformLocation);        interface->fLineWidth = glLineWidth;        GR_GL_GET_PROC(LinkProgram);        GR_GL_GET_PROC(MapBuffer);        interface->fPixelStorei = glPixelStorei;        interface->fReadBuffer = glReadBuffer;        interface->fReadPixels = glReadPixels;        if (GrGLHasExtensionFromString("GL_NV_framebuffer_multisample_coverage",                                       extString)) {            GR_GL_GET_PROC_SUFFIX(RenderbufferStorageMultisampleCoverage, NV);//.........这里部分代码省略.........
开发者ID:lauyoume,项目名称:SkiaLib,代码行数:101,


示例22: GrGLCreateNativeInterface

const GrGLInterface* GrGLCreateNativeInterface() {    // The gl functions are not context-specific so we create one global    // interface    static SkAutoTUnref<GrGLInterface> glInterface;    if (!glInterface.get()) {        GrGLInterface* interface = new GrGLInterface;        glInterface.reset(interface);        const char* verStr = (const char*) glGetString(GL_VERSION);        GrGLVersion ver = GrGLGetVersionFromString(verStr);        const char* extStr = (const char*) glGetString(GL_EXTENSIONS);        interface->fBindingsExported = kDesktop_GrGLBinding;        interface->fActiveTexture = glActiveTexture;        interface->fAttachShader = glAttachShader;        interface->fBeginQuery = glBeginQuery;        interface->fBindAttribLocation = glBindAttribLocation;        interface->fBindBuffer = glBindBuffer;        if (ver >= GR_GL_VER(3,0)) {            #if GL_VERSION_3_0                interface->fBindFragDataLocation = glBindFragDataLocation;            #else                interface->fBindFragDataLocation = GET_PROC(BindFragDataLocation);            #endif        }        interface->fBindTexture = glBindTexture;        interface->fBlendFunc = glBlendFunc;        if (ver >= GR_GL_VER(1,4)) {            interface->fBlendColor = glBlendColor;        } else if (GrGLHasExtensionFromString("GL_ARB_imaging", extStr) ||                   GrGLHasExtensionFromString("GL_EXT_blend_color", extStr)) {            GET_PROC(BlendColor);        }        interface->fBufferData = glBufferData;        interface->fBufferSubData = glBufferSubData;        interface->fClear = glClear;        interface->fClearColor = glClearColor;        interface->fClearStencil = glClearStencil;        interface->fColorMask = glColorMask;        interface->fCompileShader = glCompileShader;        interface->fCompressedTexImage2D = glCompressedTexImage2D;        interface->fCreateProgram = glCreateProgram;        interface->fCreateShader = glCreateShader;        interface->fCullFace = glCullFace;        interface->fDeleteBuffers = glDeleteBuffers;        interface->fDeleteProgram = glDeleteProgram;        interface->fDeleteQueries = glDeleteQueries;        interface->fDeleteShader = glDeleteShader;        interface->fDeleteTextures = glDeleteTextures;        interface->fDepthMask = glDepthMask;        interface->fDisable = glDisable;        interface->fDisableVertexAttribArray =                                            glDisableVertexAttribArray;        interface->fDrawArrays = glDrawArrays;        interface->fDrawBuffer = glDrawBuffer;        interface->fDrawBuffers = glDrawBuffers;        interface->fDrawElements = glDrawElements;        interface->fEnable = glEnable;        interface->fEnableVertexAttribArray = glEnableVertexAttribArray;        interface->fEndQuery = glEndQuery;        interface->fFinish = glFinish;        interface->fFlush = glFlush;        interface->fFrontFace = glFrontFace;        interface->fGenBuffers = glGenBuffers;        interface->fGenQueries = glGenQueries;        interface->fGetBufferParameteriv = glGetBufferParameteriv;        interface->fGetError = glGetError;        interface->fGetIntegerv = glGetIntegerv;        interface->fGetProgramInfoLog = glGetProgramInfoLog;        interface->fGetProgramiv = glGetProgramiv;        interface->fGetQueryiv = glGetQueryiv;        interface->fGetQueryObjectiv = glGetQueryObjectiv;        interface->fGetQueryObjectuiv = glGetQueryObjectuiv;        interface->fGetShaderInfoLog = glGetShaderInfoLog;        interface->fGetShaderiv = glGetShaderiv;        interface->fGetString = glGetString;        interface->fGetTexLevelParameteriv = glGetTexLevelParameteriv;        interface->fGenTextures = glGenTextures;        interface->fGetUniformLocation = glGetUniformLocation;        interface->fLineWidth = glLineWidth;        interface->fLinkProgram = glLinkProgram;        interface->fMapBuffer = glMapBuffer;        interface->fPixelStorei = glPixelStorei;        interface->fReadBuffer = glReadBuffer;        interface->fReadPixels = glReadPixels;        interface->fScissor = glScissor;        interface->fShaderSource = glShaderSource;        interface->fStencilFunc = glStencilFunc;        interface->fStencilFuncSeparate = glStencilFuncSeparate;        interface->fStencilMask = glStencilMask;        interface->fStencilMaskSeparate = glStencilMaskSeparate;        interface->fStencilOp = glStencilOp;        interface->fStencilOpSeparate = glStencilOpSeparate;        // mac uses GLenum for internalFormat param (non-standard)        // amounts to int vs. uint.        interface->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D;        interface->fTexParameteri = glTexParameteri;        interface->fTexParameteriv = glTexParameteriv;    #if GL_ARB_texture_storage || GL_VERSION_4_2//.........这里部分代码省略.........
开发者ID:AshishNamdev,项目名称:mozilla-central,代码行数:101,


示例23: GrGLAssembleGLInterface

const GrGLInterface* GrGLAssembleGLInterface(void* ctx, GrGLGetProc get) {    GET_PROC_LOCAL(GetString);    GET_PROC_LOCAL(GetStringi);    GET_PROC_LOCAL(GetIntegerv);    // GetStringi may be nullptr depending on the GL version.    if (nullptr == GetString || nullptr == GetIntegerv) {        return nullptr;    }    const char* versionString = (const char*) GetString(GR_GL_VERSION);    GrGLVersion glVer = GrGLGetVersionFromString(versionString);    if (glVer < GR_GL_VER(1,5) || GR_GL_INVALID_VER == glVer) {        // We must have array and element_array buffer objects.        return nullptr;    }    GrEGLQueryStringProc queryString;    GrEGLDisplay display;    get_egl_query_and_display(&queryString, &display, ctx, get);    GrGLExtensions extensions;    if (!extensions.init(kGL_GrGLStandard, GetString, GetStringi, GetIntegerv, queryString,                         display)) {        return nullptr;    }    GrGLInterface* interface = new GrGLInterface();    GrGLInterface::Functions* functions = &interface->fFunctions;    GET_PROC(ActiveTexture);    GET_PROC(AttachShader);    GET_PROC(BindAttribLocation);    GET_PROC(BindBuffer);    if (glVer >= GR_GL_VER(3,0)) {        GET_PROC(BindFragDataLocation);    }    GET_PROC(BeginQuery);    GET_PROC(BindTexture);    if (extensions.has("GL_KHR_blend_equation_advanced")) {        GET_PROC_SUFFIX(BlendBarrier, KHR);    } else if (extensions.has("GL_NV_blend_equation_advanced")) {        GET_PROC_SUFFIX(BlendBarrier, NV);    }    if (glVer >= GR_GL_VER(1,4) ||        extensions.has("GL_ARB_imaging")) {        GET_PROC(BlendColor);    } else if (extensions.has("GL_EXT_blend_color")) {        GET_PROC_SUFFIX(BlendColor, EXT);    }    if (glVer >= GR_GL_VER(1,4) ||        extensions.has("GL_ARB_imaging")) {        GET_PROC(BlendEquation);    } else if (extensions.has("GL_EXT_blend_subtract")) {        GET_PROC_SUFFIX(BlendEquation, EXT);    }    GET_PROC(BlendFunc);    GET_PROC(BufferData);    GET_PROC(BufferSubData);    GET_PROC(Clear);    GET_PROC(ClearColor);    GET_PROC(ClearStencil);    GET_PROC(ColorMask);    GET_PROC(CompileShader);    GET_PROC(CompressedTexImage2D);    GET_PROC(CompressedTexSubImage2D);    GET_PROC(CopyTexSubImage2D);    GET_PROC(CreateProgram);    GET_PROC(CreateShader);    GET_PROC(CullFace);    GET_PROC(DeleteBuffers);    GET_PROC(DeleteProgram);    GET_PROC(DeleteQueries);    GET_PROC(DeleteShader);    GET_PROC(DeleteTextures);    GET_PROC(DepthMask);    GET_PROC(Disable);    GET_PROC(DisableVertexAttribArray);    GET_PROC(DrawArrays);    GET_PROC(DrawBuffer);    GET_PROC(DrawBuffers);    GET_PROC(DrawElements);    if (glVer >= GR_GL_VER(3,1) || extensions.has("GL_ARB_draw_instanced") ||        extensions.has("GL_EXT_draw_instanced")) {        GET_PROC(DrawArraysInstanced);        GET_PROC(DrawElementsInstanced);    }    if (glVer >= GR_GL_VER(4,0)) {        // We don't use ARB_draw_indirect because it does not support a base instance.        GET_PROC(DrawArraysIndirect);        GET_PROC(DrawElementsIndirect);    }    GET_PROC(Enable);//.........这里部分代码省略.........
开发者ID:kekekeks,项目名称:skia,代码行数:101,


示例24: GR_STATIC_ASSERT

//.........这里部分代码省略.........            NULL == fDeleteFramebuffers ||            NULL == fDeleteRenderbuffers ||            NULL == fFinish ||            NULL == fFlush ||            NULL == fFramebufferRenderbuffer ||            NULL == fFramebufferTexture2D ||            NULL == fGetFramebufferAttachmentParameteriv ||            NULL == fGetRenderbufferParameteriv ||            NULL == fGenFramebuffers ||            NULL == fGenRenderbuffers ||            NULL == fRenderbufferStorage) {        return false;    }    const char* ext;    GrGLVersion glVer = GrGLGetVersion(this);    ext = (const char*)fGetString(GR_GL_EXTENSIONS);    // Now check that baseline ES/Desktop fns not covered above are present    // and that we have fn pointers for any advertised extensions that we will    // try to use.    // these functions are part of ES2, we assume they are available    // On the desktop we assume they are available if the extension    // is present or GL version is high enough.    if (kES2_GrGLBinding == binding) {        if (NULL == fBlendColor ||                NULL == fStencilFuncSeparate ||                NULL == fStencilMaskSeparate ||                NULL == fStencilOpSeparate) {            return false;        }    } else if (kDesktop_GrGLBinding == binding) {        if (glVer >= GR_GL_VER(2,0)) {            if (NULL == fStencilFuncSeparate ||                    NULL == fStencilMaskSeparate ||                    NULL == fStencilOpSeparate) {                return false;            }        }        if (glVer >= GR_GL_VER(3,0) && NULL == fBindFragDataLocation) {            return false;        }        if (glVer >= GR_GL_VER(2,0) ||                GrGLHasExtensionFromString("GL_ARB_draw_buffers", ext)) {            if (NULL == fDrawBuffers) {                return false;            }        }        if (glVer >= GR_GL_VER(1,4) ||                GrGLHasExtensionFromString("GL_EXT_blend_color", ext)) {            if (NULL == fBlendColor) {                return false;            }        }        if (glVer >= GR_GL_VER(1,5) ||                GrGLHasExtensionFromString("GL_ARB_occlusion_query", ext)) {            if (NULL == fGenQueries ||                    NULL == fDeleteQueries ||                    NULL == fBeginQuery ||                    NULL == fEndQuery ||                    NULL == fGetQueryiv ||                    NULL == fGetQueryObjectiv ||                    NULL == fGetQueryObjectuiv) {                return false;            }
开发者ID:imirceah,项目名称:android_external_skia,代码行数:67,


示例25: GrGLAssembleGLESInterface

const GrGLInterface* GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get) {    GET_PROC_LOCAL(GetString);    if (nullptr == GetString) {        return nullptr;    }    const char* verStr = reinterpret_cast<const char*>(GetString(GR_GL_VERSION));    GrGLVersion version = GrGLGetVersionFromString(verStr);    if (version < GR_GL_VER(2,0)) {        return nullptr;    }    GET_PROC_LOCAL(GetIntegerv);    GET_PROC_LOCAL(GetStringi);    GrEGLQueryStringProc queryString;    GrEGLDisplay display;    get_egl_query_and_display(&queryString, &display, ctx, get);    GrGLExtensions extensions;    if (!extensions.init(kGLES_GrGLStandard, GetString, GetStringi, GetIntegerv, queryString,                         display)) {        return nullptr;    }    GrGLInterface* interface = new GrGLInterface;    GrGLInterface::Functions* functions = &interface->fFunctions;    GET_PROC(ActiveTexture);    GET_PROC(AttachShader);    GET_PROC(BindAttribLocation);    GET_PROC(BindBuffer);    GET_PROC(BindTexture);    GET_PROC_SUFFIX(BindVertexArray, OES);    if (version >= GR_GL_VER(3,0) && extensions.has("GL_EXT_blend_func_extended")) {        GET_PROC_SUFFIX(BindFragDataLocation, EXT);        GET_PROC_SUFFIX(BindFragDataLocationIndexed, EXT);    }    if (extensions.has("GL_KHR_blend_equation_advanced")) {        GET_PROC_SUFFIX(BlendBarrier, KHR);    } else if (extensions.has("GL_NV_blend_equation_advanced")) {        GET_PROC_SUFFIX(BlendBarrier, NV);    }    GET_PROC(BlendColor);    GET_PROC(BlendEquation);    GET_PROC(BlendFunc);    GET_PROC(BufferData);    GET_PROC(BufferSubData);    GET_PROC(Clear);    GET_PROC(ClearColor);    GET_PROC(ClearStencil);    GET_PROC(ColorMask);    GET_PROC(CompileShader);    GET_PROC(CompressedTexImage2D);    GET_PROC(CompressedTexSubImage2D);    GET_PROC(CopyTexSubImage2D);    GET_PROC(CreateProgram);    GET_PROC(CreateShader);    GET_PROC(CullFace);    GET_PROC(DeleteBuffers);    GET_PROC(DeleteProgram);    GET_PROC(DeleteShader);    GET_PROC(DeleteTextures);    GET_PROC_SUFFIX(DeleteVertexArrays, OES);    GET_PROC(DepthMask);    GET_PROC(Disable);    GET_PROC(DisableVertexAttribArray);    GET_PROC(DrawArrays);    if (version >= GR_GL_VER(3,0)) {        GET_PROC(DrawArraysInstanced);        GET_PROC(DrawElementsInstanced);    } else if (extensions.has("GL_EXT_draw_instanced")) {        GET_PROC_SUFFIX(DrawArraysInstanced, EXT);        GET_PROC_SUFFIX(DrawElementsInstanced, EXT);    }    if (version >= GR_GL_VER(3,1)) {        GET_PROC(DrawArraysIndirect);        GET_PROC(DrawElementsIndirect);    }    GET_PROC(DrawElements);    GET_PROC(Enable);    GET_PROC(EnableVertexAttribArray);    GET_PROC(Finish);    GET_PROC(Flush);    GET_PROC(FrontFace);    GET_PROC(GenBuffers);    GET_PROC(GenerateMipmap);    GET_PROC(GenTextures);    GET_PROC_SUFFIX(GenVertexArrays, OES);    GET_PROC(GetBufferParameteriv);    GET_PROC(GetError);    GET_PROC(GetIntegerv);    GET_PROC(GetProgramInfoLog);    GET_PROC(GetProgramiv);    GET_PROC(GetShaderInfoLog);//.........这里部分代码省略.........
开发者ID:kekekeks,项目名称:skia,代码行数:101,


示例26: GrGLGetBindingInUse

bool SkGLContextHelper::init(int width, int height) {    if (fGL) {        fGL->unref();        this->destroyGLContext();    }    fGL = this->createGLContext();    if (fGL) {        const GrGLubyte* temp;        GrGLBinding bindingInUse = GrGLGetBindingInUse(this->gl());        if (!fGL->validate(bindingInUse) || !fExtensions.init(bindingInUse, fGL)) {            fGL = NULL;            this->destroyGLContext();            return false;        }        SK_GL_RET(*this, temp, GetString(GR_GL_VERSION));        const char* versionStr = reinterpret_cast<const char*>(temp);        GrGLVersion version = GrGLGetVersionFromString(versionStr);        // clear any existing GL erorrs        GrGLenum error;        do {            SK_GL_RET(*this, error, GetError());        } while (GR_GL_NO_ERROR != error);        SK_GL(*this, GenFramebuffers(1, &fFBO));        SK_GL(*this, BindFramebuffer(GR_GL_FRAMEBUFFER, fFBO));        SK_GL(*this, GenRenderbuffers(1, &fColorBufferID));        SK_GL(*this, BindRenderbuffer(GR_GL_RENDERBUFFER, fColorBufferID));        if (kES_GrGLBinding == bindingInUse) {            SK_GL(*this, RenderbufferStorage(GR_GL_RENDERBUFFER,                                             GR_GL_RGBA8,                                             width, height));        } else {            SK_GL(*this, RenderbufferStorage(GR_GL_RENDERBUFFER,                                             GR_GL_RGBA,                                             width, height));        }        SK_GL(*this, FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,                                             GR_GL_COLOR_ATTACHMENT0,                                             GR_GL_RENDERBUFFER,                                             fColorBufferID));        SK_GL(*this, GenRenderbuffers(1, &fDepthStencilBufferID));        SK_GL(*this, BindRenderbuffer(GR_GL_RENDERBUFFER, fDepthStencilBufferID));        // Some drivers that support packed depth stencil will only succeed        // in binding a packed format an FBO. However, we can't rely on packed        // depth stencil being available.        bool supportsPackedDepthStencil;        if (kES_GrGLBinding == bindingInUse) {            supportsPackedDepthStencil = version >= GR_GL_VER(3,0) ||                                         this->hasExtension("GL_OES_packed_depth_stencil");        } else {            supportsPackedDepthStencil = version >= GR_GL_VER(3,0) ||                                         this->hasExtension("GL_EXT_packed_depth_stencil") ||                                         this->hasExtension("GL_ARB_framebuffer_object");        }        if (supportsPackedDepthStencil) {            // ES2 requires sized internal formats for RenderbufferStorage            // On Desktop we let the driver decide.            GrGLenum format = kES_GrGLBinding == bindingInUse ?                                    GR_GL_DEPTH24_STENCIL8 :                                    GR_GL_DEPTH_STENCIL;            SK_GL(*this, RenderbufferStorage(GR_GL_RENDERBUFFER,                                             format,                                             width, height));            SK_GL(*this, FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,                                                 GR_GL_DEPTH_ATTACHMENT,                                                 GR_GL_RENDERBUFFER,                                                 fDepthStencilBufferID));        } else {            GrGLenum format = kES_GrGLBinding == bindingInUse ?                                    GR_GL_STENCIL_INDEX8 :                                    GR_GL_STENCIL_INDEX;            SK_GL(*this, RenderbufferStorage(GR_GL_RENDERBUFFER,                                             format,                                             width, height));        }        SK_GL(*this, FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,                                             GR_GL_STENCIL_ATTACHMENT,                                             GR_GL_RENDERBUFFER,                                             fDepthStencilBufferID));        SK_GL(*this, Viewport(0, 0, width, height));        SK_GL(*this, ClearStencil(0));        SK_GL(*this, Clear(GR_GL_STENCIL_BUFFER_BIT));        SK_GL_RET(*this, error, GetError());        GrGLenum status;        SK_GL_RET(*this, status, CheckFramebufferStatus(GR_GL_FRAMEBUFFER));        if (GR_GL_FRAMEBUFFER_COMPLETE != status ||            GR_GL_NO_ERROR != error) {            fFBO = 0;            fColorBufferID = 0;            fDepthStencilBufferID = 0;            fGL->unref();//.........这里部分代码省略.........
开发者ID:CriGio,项目名称:platform_external_skia,代码行数:101,


示例27: GR_GL_GetIntegerv

void GrGLCaps::init(const GrGLContextInfo& ctxInfo) {    this->reset();    if (!ctxInfo.isInitialized()) {        return;    }    const GrGLInterface* gli = ctxInfo.interface();    GrGLBinding binding = ctxInfo.binding();    GrGLVersion version = ctxInfo.version();    if (kES2_GrGLBinding == binding) {        GR_GL_GetIntegerv(gli, GR_GL_MAX_FRAGMENT_UNIFORM_VECTORS,                          &fMaxFragmentUniformVectors);    } else {        GrAssert(kDesktop_GrGLBinding == binding);        GrGLint max;        GR_GL_GetIntegerv(gli, GR_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, &max);        fMaxFragmentUniformVectors = max / 4;    }    if (kDesktop_GrGLBinding == binding) {        fRGBA8RenderbufferSupport = true;    } else {        fRGBA8RenderbufferSupport = ctxInfo.hasExtension("GL_OES_rgb8_rgba8") ||                                    ctxInfo.hasExtension("GL_ARM_rgba8");    }    if (kDesktop_GrGLBinding == binding) {        fBGRAFormatSupport = version >= GR_GL_VER(1,2) ||                             ctxInfo.hasExtension("GL_EXT_bgra");    } else {        bool hasBGRAExt = false;        if (ctxInfo.hasExtension("GL_APPLE_texture_format_BGRA8888")) {            fBGRAFormatSupport = true;        } else if (ctxInfo.hasExtension("GL_EXT_texture_format_BGRA8888")) {            fBGRAFormatSupport = true;            fBGRAIsInternalFormat = true;        }        GrAssert(fBGRAFormatSupport ||                 kSkia8888_PM_GrPixelConfig != kBGRA_8888_PM_GrPixelConfig);    }    if (kDesktop_GrGLBinding == binding) {        fTextureSwizzleSupport = version >= GR_GL_VER(3,3) ||                                 ctxInfo.hasExtension("GL_ARB_texture_swizzle");    } else {        fTextureSwizzleSupport = false;    }    if (kDesktop_GrGLBinding == binding) {        fUnpackRowLengthSupport = true;        fUnpackFlipYSupport = false;        fPackRowLengthSupport = true;        fPackFlipYSupport = false;    } else {        fUnpackRowLengthSupport =ctxInfo.hasExtension("GL_EXT_unpack_subimage");        fUnpackFlipYSupport = ctxInfo.hasExtension("GL_CHROMIUM_flipy");        // no extension for pack row length        fPackRowLengthSupport = false;        fPackFlipYSupport =            ctxInfo.hasExtension("GL_ANGLE_pack_reverse_row_order");    }    fTextureUsageSupport = (kES2_GrGLBinding == binding) &&                            ctxInfo.hasExtension("GL_ANGLE_texture_usage");    // Tex storage is in desktop 4.2 and can be an extension to desktop or ES.    fTexStorageSupport = (kDesktop_GrGLBinding == binding &&                          version >= GR_GL_VER(4,2)) ||                         ctxInfo.hasExtension("GL_ARB_texture_storage") ||                         ctxInfo.hasExtension("GL_EXT_texture_storage");    // ARB_texture_rg is part of OpenGL 3.0    if (kDesktop_GrGLBinding == binding) {        fTextureRedSupport = version >= GR_GL_VER(3,0) ||                             ctxInfo.hasExtension("GL_ARB_texture_rg");    } else {        fTextureRedSupport = ctxInfo.hasExtension("GL_ARB_texture_rg");    }    this->initFSAASupport(ctxInfo);    this->initStencilFormats(ctxInfo);}
开发者ID:ghub,项目名称:NVprSDK,代码行数:84,


示例28: switch

//.........这里部分代码省略.........            }            break;        case kOpenGL_Fixed_GrEngine:            if (kES1_GrGLBinding == fBindingsExported) {                return false;            }            if (!this->validateFixedFunctions()) {                return false;            }            break;        default:            return false;    }    const char* ext;    GrGLVersion glVer = GrGLGetVersion(this);    ext = (const char*)fGetString(GR_GL_EXTENSIONS);    // Now check that baseline ES/Desktop fns not covered above are present    // and that we have fn pointers for any advertised extensions that we will    // try to use.    // these functions are part of ES2, we assume they are available    // On the desktop we assume they are available if the extension    // is present or GL version is high enough.    if ((kES2_GrGLBinding & fBindingsExported)) {        if (NULL == fBlendColor ||            NULL == fStencilFuncSeparate ||            NULL == fStencilMaskSeparate ||            NULL == fStencilOpSeparate) {            return false;        }    } else if (kDesktop_GrGLBinding == fBindingsExported) {        if (glVer >= GR_GL_VER(2,0)) {            if (NULL == fStencilFuncSeparate ||                NULL == fStencilMaskSeparate ||                NULL == fStencilOpSeparate) {                return false;            }        }        if (glVer >= GR_GL_VER(3,0) && NULL == fBindFragDataLocation) {            return false;        }        if (glVer >= GR_GL_VER(2,0) ||            GrGLHasExtensionFromString("GL_ARB_draw_buffers", ext)) {            if (NULL == fDrawBuffers) {                return false;            }        }        if (glVer >= GR_GL_VER(1,4) ||            GrGLHasExtensionFromString("GL_EXT_blend_color", ext)) {            if (NULL == fBlendColor) {                return false;            }        }    }    // optional function on desktop before 1.3    if (kDesktop_GrGLBinding != fBindingsExported ||        (glVer >= GR_GL_VER(1,3) ||        GrGLHasExtensionFromString("GL_ARB_texture_compression", ext))) {        if (NULL == fCompressedTexImage2D) {            return false;        }    }
开发者ID:lexuanquyen,项目名称:chromium_base,代码行数:66,



注:本文中的GR_GL_VER函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GR_STATIC_ASSERT函数代码示例
C++ GRSetDrawMode函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。