这篇教程C++ ErrorInvalidOperation函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ErrorInvalidOperation函数的典型用法代码示例。如果您正苦于以下问题:C++ ErrorInvalidOperation函数的具体用法?C++ ErrorInvalidOperation怎么用?C++ ErrorInvalidOperation使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ErrorInvalidOperation函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ErrorInvalidOperationvoidWebGL2Context::SamplerParameteri(WebGLSampler* sampler, GLenum pname, GLint param){ if (IsContextLost()) return; if (!sampler || sampler->IsDeleted()) return ErrorInvalidOperation("samplerParameteri: invalid sampler"); if (!ValidateSamplerParameterParams(pname, WebGLIntOrFloat(param), "samplerParameteri")) return; WebGLContextUnchecked::SamplerParameteri(sampler, pname, param);}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:14,
示例2: ErrorInvalidOperationboolWebGLContext::ValidateStencilParamsForDrawCall(){ const char msg[] = "%s set different front and back stencil %s. Drawing in" " this configuration is not allowed."; if (mStencilRefFront != mStencilRefBack) { ErrorInvalidOperation(msg, "stencilFuncSeparate", "reference values"); return false; } if (mStencilValueMaskFront != mStencilValueMaskBack) { ErrorInvalidOperation(msg, "stencilFuncSeparate", "value masks"); return false; } if (mStencilWriteMaskFront != mStencilWriteMaskBack) { ErrorInvalidOperation(msg, "stencilMaskSeparate", "write masks"); return false; } return true;}
开发者ID:GuanWen-Chen,项目名称:gecko-b2g,代码行数:23,
示例3: ErrorInvalidOperationvoidWebGL2Context::RenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height){ const char funcName[] = "renderbufferStorageMultisample"; if (IsContextLost()) return; //RenderbufferStorage_base(funcName, target, samples, internalFormat, width, height); ErrorInvalidOperation("%s: Multisampling is still under development, and is currently" " disabled.", funcName);}
开发者ID:Danielzac,项目名称:gecko-dev,代码行数:14,
示例4: ErrorInvalidOperationvoidWebGLContext::BindBufferBase(GLenum target, GLuint index, WebGLBuffer* buffer){ const char funcName[] = "bindBufferBase"; if (IsContextLost()) return; if (!ValidateObjectAllowDeletedOrNull(funcName, buffer)) return; if (buffer && buffer->IsDeleted()) return ErrorInvalidOperation("%s: Cannot bind a deleted object.", funcName); WebGLRefPtr<WebGLBuffer>* genericBinding; IndexedBufferBinding* indexedBinding; if (!ValidateIndexedBufferBinding(funcName, target, index, &genericBinding, &indexedBinding)) { return; } if (buffer && !buffer->ValidateCanBindToTarget(funcName, target)) return; //// gl->MakeCurrent(); gl->fBindBufferBase(target, index, buffer ? buffer->mGLName : 0); //// *genericBinding = buffer; indexedBinding->mBufferBinding = buffer; indexedBinding->mRangeStart = 0; indexedBinding->mRangeSize = 0; if (buffer) { buffer->SetContentAfterBind(target); } switch (target) { case LOCAL_GL_TRANSFORM_FEEDBACK_BUFFER: mBoundTransformFeedback->OnIndexedBindingsChanged(); break; case LOCAL_GL_UNIFORM: OnUBIndexedBindingsChanged(); break; }}
开发者ID:ollie314,项目名称:gecko-dev,代码行数:49,
示例5: funcScopevoid WebGLContext::BeginQuery(GLenum target, WebGLQuery& query) { const FuncScope funcScope(*this, "beginQuery"); if (IsContextLost()) return; if (!ValidateObject("query", query)) return; const auto& slot = ValidateQuerySlotByTarget(target); if (!slot) return; if (*slot) return ErrorInvalidOperation("Query target already active."); //// query.BeginQuery(target, *slot);}
开发者ID:Noctem,项目名称:gecko-dev,代码行数:15,
示例6: MOZ_ASSERTvoidWebGL2Context::BeginTransformFeedback(GLenum primitiveMode){ if (IsContextLost()) return; WebGLTransformFeedback* tf = mBoundTransformFeedback; MOZ_ASSERT(tf); if (!tf) return; if (tf->mIsActive) return ErrorInvalidOperation("beginTransformFeedback: transform feedback is active"); const GLenum mode = tf->mMode; if (mode != LOCAL_GL_POINTS && mode != LOCAL_GL_LINES && mode != LOCAL_GL_TRIANGLES) return ErrorInvalidEnum("beginTransformFeedback: primitive must be one of POINTS, LINES, or TRIANGLES"); // TODO: // GL_INVALID_OPERATION is generated by glBeginTransformFeedback // if any binding point used in transform feedback mode does not // have a buffer object bound. In interleaved mode, only the first // buffer object binding point is ever written to. // GL_INVALID_OPERATION is generated by glBeginTransformFeedback // if no binding points would be used, either because no program // object is active of because the active program object has // specified no varying variables to record. if (!mCurrentProgram) return ErrorInvalidOperation("beginTransformFeedback: no program is active"); MakeContextCurrent(); gl->fBeginTransformFeedback(primitiveMode); tf->mIsActive = true; tf->mIsPaused = false;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:36,
示例7: GetBufferSlotByTargetvoidWebGLContext::BufferSubDataT(GLenum target, WebGLsizeiptr byteOffset, const BufferT& data){ if (IsContextLost()) return; if (!ValidateBufferTarget(target, "bufferSubData")) return; WebGLRefPtr<WebGLBuffer>& bufferSlot = GetBufferSlotByTarget(target); if (byteOffset < 0) return ErrorInvalidValue("bufferSubData: negative offset"); WebGLBuffer* boundBuffer = bufferSlot.get(); if (!boundBuffer) return ErrorInvalidOperation("bufferData: no buffer bound!"); data.ComputeLengthAndData(); CheckedInt<WebGLsizeiptr> checked_neededByteLength = CheckedInt<WebGLsizeiptr>(byteOffset) + data.Length(); if (!checked_neededByteLength.isValid()) { ErrorInvalidValue("bufferSubData: Integer overflow computing the needed" " byte length."); return; } if (checked_neededByteLength.value() > boundBuffer->ByteLength()) { ErrorInvalidValue("bufferSubData: Not enough data. Operation requires" " %d bytes, but buffer only has %d bytes.", checked_neededByteLength.value(), boundBuffer->ByteLength()); return; } boundBuffer->ElementArrayCacheBufferSubData(byteOffset, data.Data(), data.Length()); MakeContextCurrent(); gl->fBufferSubData(target, byteOffset, data.Length(), data.Data());}
开发者ID:Manishearth,项目名称:gecko-dev,代码行数:45,
示例8: ErrorInvalidOperationvoidWebGL2Context::DeleteTransformFeedback(WebGLTransformFeedback* tf){ const char funcName[] = "deleteTransformFeedback"; if (!ValidateDeleteObject(funcName, tf)) return; if (tf->mIsActive) { ErrorInvalidOperation("%s: Cannot delete active transform feedbacks.", funcName); return; } if (mBoundTransformFeedback == tf) { BindTransformFeedback(LOCAL_GL_TRANSFORM_FEEDBACK, nullptr); } tf->RequestDelete();}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:18,
示例9: ValidateBufferSlotWebGLBuffer*WebGLContext::ValidateBufferSelection(const char* funcName, GLenum target){ const auto& slot = ValidateBufferSlot(funcName, target); if (!slot) return nullptr; const auto& buffer = *slot; if (!buffer) { ErrorInvalidOperation("%s: Buffer for `target` is null.", funcName); return nullptr; } if (!ValidateForNonTransformFeedback(funcName, buffer.get())) return nullptr; return buffer.get();}
开发者ID:ollie314,项目名称:gecko-dev,代码行数:18,
示例10: switchboolWebGLContext::ValidateFramebufferAttachment(const WebGLFramebuffer* fb, GLenum attachment, const char* funcName, bool badColorAttachmentIsInvalidOp){ if (!fb) { switch (attachment) { case LOCAL_GL_COLOR: case LOCAL_GL_DEPTH: case LOCAL_GL_STENCIL: return true; default: ErrorInvalidEnum("%s: attachment: invalid enum value 0x%x.", funcName, attachment); return false; } } if (attachment == LOCAL_GL_DEPTH_ATTACHMENT || attachment == LOCAL_GL_STENCIL_ATTACHMENT || attachment == LOCAL_GL_DEPTH_STENCIL_ATTACHMENT) { return true; } if (attachment >= LOCAL_GL_COLOR_ATTACHMENT0 && attachment <= LastColorAttachmentEnum()) { return true; } if (badColorAttachmentIsInvalidOp && attachment >= LOCAL_GL_COLOR_ATTACHMENT0) { const uint32_t offset = attachment - LOCAL_GL_COLOR_ATTACHMENT0; ErrorInvalidOperation("%s: Bad color attachment: COLOR_ATTACHMENT%u. (0x%04x)", funcName, offset, attachment); } else { ErrorInvalidEnum("%s: attachment: Bad attachment 0x%x.", funcName, attachment); } return false;}
开发者ID:GuanWen-Chen,项目名称:gecko-b2g,代码行数:43,
示例11: ErrorInvalidValuevoidWebGL2Context::BindSampler(GLuint unit, WebGLSampler* sampler){ if (IsContextLost()) return; if (!ValidateObjectAllowDeletedOrNull("bindSampler", sampler)) return; if (GLint(unit) >= mGLMaxTextureUnits) return ErrorInvalidValue("bindSampler: unit must be < %d", mGLMaxTextureUnits); if (sampler && sampler->IsDeleted()) return ErrorInvalidOperation("bindSampler: binding deleted sampler"); WebGLContextUnchecked::BindSampler(unit, sampler); mBoundSamplers[unit] = sampler;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:19,
示例12: GetQuerySlotByTargetvoidWebGL2Context::EndQuery(GLenum target){ if (IsContextLost()) return; if (!ValidateQueryTarget(target, "endQuery")) return; WebGLRefPtr<WebGLQuery>& querySlot = GetQuerySlotByTarget(target); WebGLQuery* activeQuery = querySlot.get(); if (!activeQuery || target != activeQuery->mType) { /* From GLES's EXT_occlusion_query_boolean: * marks the end of the sequence of commands to be tracked for the * query type given by <target>. The active query object for * <target> is updated to indicate that query results are not * available, and the active query object name for <target> is reset * to zero. When the commands issued prior to EndQueryEXT have * completed and a final query result is available, the query object * active when EndQueryEXT is called is updated by the GL. The query * object is updated to indicate that the query results are * available and to contain the query result. If the active query * object name for <target> is zero when EndQueryEXT is called, the * error INVALID_OPERATION is generated. */ ErrorInvalidOperation("endQuery: There is no active query of type %s.", GetQueryTargetEnumString(target)); return; } MakeContextCurrent(); if (target == LOCAL_GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) { gl->fEndQuery(LOCAL_GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN); } else { gl->fEndQuery(SimulateOcclusionQueryTarget(gl, target)); } UpdateBoundQuery(target, nullptr); NS_DispatchToCurrentThread(new WebGLQuery::AvailableRunnable(activeQuery));}
开发者ID:MichaelKohler,项目名称:gecko-dev,代码行数:43,
示例13: ErrorInvalidOperationbool WebGLContext::ValidateIndexedBufferBinding( GLenum target, GLuint index, WebGLRefPtr<WebGLBuffer>** const out_genericBinding, IndexedBufferBinding** const out_indexedBinding) { *out_genericBinding = ValidateBufferSlot(target); if (!*out_genericBinding) return false; *out_indexedBinding = ValidateIndexedBufferSlot(target, index); if (!*out_indexedBinding) return false; if (target == LOCAL_GL_TRANSFORM_FEEDBACK_BUFFER && mBoundTransformFeedback->mIsActive) { ErrorInvalidOperation( "Cannot update indexed buffer bindings on active" " transform feedback objects."); return false; } return true;}
开发者ID:jld,项目名称:gecko-dev,代码行数:20,
示例14: ValidateQuerySlotByTargetvoidWebGLContext::EndQuery(GLenum target, const char* funcName){ if (!funcName) { funcName = "endQuery"; } if (IsContextLost()) return; const auto& slot = ValidateQuerySlotByTarget(funcName, target); if (!slot) return; const auto& query = *slot; if (!query) return ErrorInvalidOperation("%s: Query target not active.", funcName); query->EndQuery();}
开发者ID:artines1,项目名称:gecko-dev,代码行数:20,
示例15: MakeContextCurrentalready_AddRefed<WebGLSampler>WebGL2Context::CreateSampler(){ const char funcName[] = "createSampler"; if (IsContextLost()) return nullptr; /* GLuint sampler; MakeContextCurrent(); gl->fGenSamplers(1, &sampler); RefPtr<WebGLSampler> globj = new WebGLSampler(this, sampler); return globj.forget(); */ ErrorInvalidOperation("%s: Sampler objects are still under development, and are" " currently disabled.", funcName); return nullptr;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:22,
示例16: ErrorInvalidEnumvoidWebGL2Context::BindTransformFeedback(GLenum target, WebGLTransformFeedback* tf){ const char funcName[] = "bindTransformFeedback"; if (IsContextLost()) return; if (target != LOCAL_GL_TRANSFORM_FEEDBACK) return ErrorInvalidEnum("%s: `target` must be TRANSFORM_FEEDBACK.", funcName); if (tf && !ValidateObject(funcName, *tf)) return; if (mBoundTransformFeedback->mIsActive && !mBoundTransformFeedback->mIsPaused) { ErrorInvalidOperation("%s: Currently bound transform feedback is active and not" " paused.", funcName); return; } //// if (mBoundTransformFeedback) { mBoundTransformFeedback->AddBufferBindCounts(-1); } mBoundTransformFeedback = (tf ? tf : mDefaultTransformFeedback); MakeContextCurrent(); gl->fBindTransformFeedback(target, mBoundTransformFeedback->mGLName); if (mBoundTransformFeedback) { mBoundTransformFeedback->AddBufferBindCounts(+1); }}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:37,
示例17: switchboolWebGL2Context::ValidateBufferTarget(GLenum target, const char* info){ switch (target) { case LOCAL_GL_ARRAY_BUFFER: case LOCAL_GL_COPY_READ_BUFFER: case LOCAL_GL_COPY_WRITE_BUFFER: case LOCAL_GL_ELEMENT_ARRAY_BUFFER: case LOCAL_GL_TRANSFORM_FEEDBACK_BUFFER: case LOCAL_GL_UNIFORM_BUFFER: return true; case LOCAL_GL_PIXEL_PACK_BUFFER: case LOCAL_GL_PIXEL_UNPACK_BUFFER: ErrorInvalidOperation("%s: PBOs are still under development, and are currently" " disabled.", info); return false; default: ErrorInvalidEnumInfo(info, target); return false; }}
开发者ID:Danielzac,项目名称:gecko-dev,代码行数:24,
示例18: GetBufferSlotByTargetvoidWebGL2Context::CopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size){ if (IsContextLost()) return; if (!ValidateBufferTarget(readTarget, "copyBufferSubData") || !ValidateBufferTarget(writeTarget, "copyBufferSubData")) { return; } const WebGLRefPtr<WebGLBuffer>& readBufferSlot = GetBufferSlotByTarget(readTarget); const WebGLRefPtr<WebGLBuffer>& writeBufferSlot = GetBufferSlotByTarget(writeTarget); if (!readBufferSlot || !writeBufferSlot) return; const WebGLBuffer* readBuffer = readBufferSlot.get(); if (!readBuffer) return ErrorInvalidOperation("copyBufferSubData: No buffer bound to readTarget"); WebGLBuffer* writeBuffer = writeBufferSlot.get(); if (!writeBuffer) return ErrorInvalidOperation("copyBufferSubData: No buffer bound to writeTarget"); if (!ValidateDataOffsetSize(readOffset, size, readBuffer->ByteLength(), "copyBufferSubData")) { return; } if (!ValidateDataOffsetSize(writeOffset, size, writeBuffer->ByteLength(), "copyBufferSubData")) { return; } if (readTarget == writeTarget && !ValidateDataRanges(readOffset, writeOffset, size, "copyBufferSubData")) { return; } WebGLBuffer::Kind readType = readBuffer->Content(); WebGLBuffer::Kind writeType = writeBuffer->Content(); if (readType != WebGLBuffer::Kind::Undefined && writeType != WebGLBuffer::Kind::Undefined && writeType != readType) { ErrorInvalidOperation("copyBufferSubData: Can't copy %s data to %s data", (readType == WebGLBuffer::Kind::OtherData) ? "other" : "element", (writeType == WebGLBuffer::Kind::OtherData) ? "other" : "element"); return; } WebGLContextUnchecked::CopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size); if (writeType == WebGLBuffer::Kind::Undefined) { writeBuffer->BindTo( (readType == WebGLBuffer::Kind::OtherData) ? LOCAL_GL_ARRAY_BUFFER : LOCAL_GL_ELEMENT_ARRAY_BUFFER); }}
开发者ID:bolt-dev,项目名称:gecko-dev,代码行数:67,
注:本文中的ErrorInvalidOperation函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ErrorMessage函数代码示例 C++ ErrorInit函数代码示例 |