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

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

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

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

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

示例1: _mesa_validate_DrawElementsInstanced

GLboolean_mesa_validate_DrawElementsInstanced(struct gl_context *ctx,                                     GLenum mode, GLsizei count, GLenum type,                                     const GLvoid *indices, GLsizei numInstances){   FLUSH_CURRENT(ctx, 0);   if (numInstances < 0) {      _mesa_error(ctx, GL_INVALID_VALUE,                  "glDrawElementsInstanced(numInstances=%d)", numInstances);      return GL_FALSE;   }   return validate_DrawElements_common(ctx, mode, count, type, indices,                                       "glDrawElementsInstanced")      && (numInstances > 0);}
开发者ID:threader,项目名称:mesa-11.1.1-ppc-r300-debian,代码行数:17,


示例2: _mesa_GetVertexAttribfvARB

void GLAPIENTRY_mesa_GetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params){   GET_CURRENT_CONTEXT(ctx);   ASSERT_OUTSIDE_BEGIN_END(ctx);   if (index == 0 || index >= MAX_VERTEX_PROGRAM_ATTRIBS) {      _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribfvARB(index)");      return;   }   switch (pname) {      case GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB:         params[0] = (GLfloat) ctx->Array.VertexAttrib[index].Enabled;         break;      case GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB:         params[0] = (GLfloat) ctx->Array.VertexAttrib[index].Size;         break;      case GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB:         params[0] = (GLfloat) ctx->Array.VertexAttrib[index].Stride;         break;      case GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB:         params[0] = (GLfloat) ctx->Array.VertexAttrib[index].Type;         break;      case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB:         params[0] = ctx->Array.VertexAttrib[index].Normalized;         break;      case GL_CURRENT_VERTEX_ATTRIB_ARB:	 FLUSH_CURRENT(ctx, 0);         /* XXX should read:            COPY_4V(params, ctx->Current.Attrib[VERT_ATTRIB_GENERIC0 + index]);          */         COPY_4V(params, ctx->Current.Attrib[index]);         break;      case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB:         if (!ctx->Extensions.ARB_vertex_buffer_object) {            _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribfvARB(pname)");            return;         }         params[0] = (GLfloat) ctx->Array.VertexAttrib[index].BufferObj->Name;      default:         _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribfvARB(pname)");         return;   }}
开发者ID:Ionic,项目名称:nx-libs,代码行数:45,


示例3: _mesa_GetVertexAttribivNV

/** * Get a vertex (or vertex array) attribute. * /note Not compiled into display lists. * /note Called from the GL API dispatcher. */void GLAPIENTRY_mesa_GetVertexAttribivNV(GLuint index, GLenum pname, GLint *params){   GET_CURRENT_CONTEXT(ctx);   ASSERT_OUTSIDE_BEGIN_END(ctx);   if (index >= MAX_NV_VERTEX_PROGRAM_INPUTS) {      _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribdvNV(index)");      return;   }   switch (pname) {      case GL_ATTRIB_ARRAY_SIZE_NV:         params[0] = ctx->Array.ArrayObj->VertexAttrib[index].Size;         break;      case GL_ATTRIB_ARRAY_STRIDE_NV:         params[0] = ctx->Array.ArrayObj->VertexAttrib[index].Stride;         break;      case GL_ATTRIB_ARRAY_TYPE_NV:         params[0] = ctx->Array.ArrayObj->VertexAttrib[index].Type;         break;      case GL_CURRENT_ATTRIB_NV:         if (index == 0) {            _mesa_error(ctx, GL_INVALID_OPERATION,                        "glGetVertexAttribivNV(index == 0)");            return;         }	 FLUSH_CURRENT(ctx, 0);         params[0] = (GLint) ctx->Current.Attrib[index][0];         params[1] = (GLint) ctx->Current.Attrib[index][1];         params[2] = (GLint) ctx->Current.Attrib[index][2];         params[3] = (GLint) ctx->Current.Attrib[index][3];         break;      case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB:         if (!ctx->Extensions.ARB_vertex_buffer_object) {            _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribdvNV");            return;         }         params[0] = ctx->Array.ArrayObj->VertexAttrib[index].BufferObj->Name;         break;      default:         _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribdvNV");         return;   }}
开发者ID:Starlink,项目名称:mesa,代码行数:50,


示例4: _mesa_GetVertexAttribivNV

/** * Get a vertex (or vertex array) attribute. * /note Not compiled into display lists. * /note Called from the GL API dispatcher. */void GLAPIENTRY_mesa_GetVertexAttribivNV(GLuint index, GLenum pname, GLint *params){   const struct gl_client_array *array;   GET_CURRENT_CONTEXT(ctx);   ASSERT_OUTSIDE_BEGIN_END(ctx);   if (index >= MAX_NV_VERTEX_PROGRAM_INPUTS) {      _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribdvNV(index)");      return;   }   array = &ctx->Array.ArrayObj->VertexAttrib[VERT_ATTRIB_GENERIC(index)];   switch (pname) {      case GL_ATTRIB_ARRAY_SIZE_NV:         params[0] = array->Size;         break;      case GL_ATTRIB_ARRAY_STRIDE_NV:         params[0] = array->Stride;         break;      case GL_ATTRIB_ARRAY_TYPE_NV:         params[0] = array->Type;         break;      case GL_CURRENT_ATTRIB_NV:         if (index == 0) {            _mesa_error(ctx, GL_INVALID_OPERATION,                        "glGetVertexAttribivNV(index == 0)");            return;         }	 FLUSH_CURRENT(ctx, 0);         params[0] = (GLint) ctx->Current.Attrib[index][0];         params[1] = (GLint) ctx->Current.Attrib[index][1];         params[2] = (GLint) ctx->Current.Attrib[index][2];         params[3] = (GLint) ctx->Current.Attrib[index][3];         break;      case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB:         params[0] = array->BufferObj->Name;         break;      default:         _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribdvNV");         return;   }}
开发者ID:FASTCHIP,项目名称:kernel_3.4.67_lenovo_s939_mtk6592,代码行数:49,


示例5: rasterpos

/** * Helper function for all the RasterPos functions. */static voidrasterpos(GLfloat x, GLfloat y, GLfloat z, GLfloat w){   GET_CURRENT_CONTEXT(ctx);   GLfloat p[4];   p[0] = x;   p[1] = y;   p[2] = z;   p[3] = w;   FLUSH_VERTICES(ctx, 0);   FLUSH_CURRENT(ctx, 0);   if (ctx->NewState)      _mesa_update_state( ctx );   ctx->Driver.RasterPos(ctx, p);}
开发者ID:mdaniel,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:22,


示例6: rasterpos

/** * Helper function for all the RasterPos functions. */static voidrasterpos(GLfloat x, GLfloat y, GLfloat z, GLfloat w){   GET_CURRENT_CONTEXT(ctx);   GLfloat p[4];   p[0] = x;   p[1] = y;   p[2] = z;   p[3] = w;   ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);   FLUSH_CURRENT(ctx, 0);   if (ctx->NewState)      _mesa_update_state( ctx );   ctx->Driver.RasterPos(ctx, p);}
开发者ID:GYGit,项目名称:reactos,代码行数:22,


示例7: _mesa_validate_DrawTransformFeedback

GLboolean_mesa_validate_DrawTransformFeedback(struct gl_context *ctx,                                     GLenum mode,                                     struct gl_transform_feedback_object *obj,                                     GLuint stream,                                     GLsizei numInstances){   FLUSH_CURRENT(ctx, 0);   if (!_mesa_valid_prim_mode(ctx, mode, "glDrawTransformFeedback*(mode)")) {      return GL_FALSE;   }   if (!obj) {      _mesa_error(ctx, GL_INVALID_VALUE, "glDrawTransformFeedback*(name)");      return GL_FALSE;   }   if (!obj->EndedAnytime) {      _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawTransformFeedback*");      return GL_FALSE;   }   if (stream >= ctx->Const.MaxVertexStreams) {      _mesa_error(ctx, GL_INVALID_VALUE,                  "glDrawTransformFeedbackStream*(index>=MaxVertexStream)");      return GL_FALSE;   }   if (numInstances <= 0) {      if (numInstances < 0)         _mesa_error(ctx, GL_INVALID_VALUE,                     "glDrawTransformFeedback*Instanced(numInstances=%d)",                     numInstances);      return GL_FALSE;   }   if (!check_valid_to_render(ctx, "glDrawTransformFeedback*")) {      return GL_FALSE;   }   return GL_TRUE;}
开发者ID:CSRedRat,项目名称:mesa-1,代码行数:43,


示例8: window_pos3f

/** * All glWindowPosMESA and glWindowPosARB commands call this function to * update the current raster position. */static voidwindow_pos3f(GLfloat x, GLfloat y, GLfloat z){   GET_CURRENT_CONTEXT(ctx);   GLfloat z2;   ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);   FLUSH_CURRENT(ctx, 0);   z2 = CLAMP(z, 0.0F, 1.0F) * (ctx->Viewport.Far - ctx->Viewport.Near)      + ctx->Viewport.Near;   /* set raster position */   ctx->Current.RasterPos[0] = x;   ctx->Current.RasterPos[1] = y;   ctx->Current.RasterPos[2] = z2;   ctx->Current.RasterPos[3] = 1.0F;   ctx->Current.RasterPosValid = GL_TRUE;   if (ctx->Fog.FogCoordinateSource == GL_FOG_COORDINATE_EXT)      ctx->Current.RasterDistance = ctx->Current.Attrib[VERT_ATTRIB_FOG][0];   else      ctx->Current.RasterDistance = 0.0;   /* raster color = current color or index */   ctx->Current.RasterColor[0]      = CLAMP(ctx->Current.Attrib[VERT_ATTRIB_COLOR][0], 0.0F, 1.0F);   ctx->Current.RasterColor[1]      = CLAMP(ctx->Current.Attrib[VERT_ATTRIB_COLOR][1], 0.0F, 1.0F);   ctx->Current.RasterColor[2]      = CLAMP(ctx->Current.Attrib[VERT_ATTRIB_COLOR][2], 0.0F, 1.0F);   ctx->Current.RasterColor[3]      = CLAMP(ctx->Current.Attrib[VERT_ATTRIB_COLOR][3], 0.0F, 1.0F);   /* raster texcoord = current texcoord */   COPY_4FV( ctx->Current.RasterTexCoords, ctx->Current.Attrib[VERT_ATTRIB_TEX] );   if (ctx->RenderMode==GL_SELECT) {      _mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] );   }}
开发者ID:GYGit,项目名称:reactos,代码行数:46,


示例9: _mesa_validate_MultiDrawElements

/** * Error checking for glMultiDrawElements().  Includes parameter checking * and VBO bounds checking. * /return GL_TRUE if OK to render, GL_FALSE if error found */GLboolean_mesa_validate_MultiDrawElements(struct gl_context *ctx,                                 GLenum mode, const GLsizei *count,                                 GLenum type, const GLvoid * const *indices,                                 GLuint primcount){   unsigned i;   FLUSH_CURRENT(ctx, 0);   for (i = 0; i < primcount; i++) {      if (count[i] < 0) {         _mesa_error(ctx, GL_INVALID_VALUE,                     "glMultiDrawElements(count)" );         return GL_FALSE;      }   }   if (!_mesa_valid_prim_mode(ctx, mode, "glMultiDrawElements")) {      return GL_FALSE;   }   if (!valid_elements_type(ctx, type, "glMultiDrawElements"))      return GL_FALSE;   if (!check_valid_to_render(ctx, "glMultiDrawElements"))      return GL_FALSE;   /* Not using a VBO for indices, so avoid NULL pointer derefs later.    */   if (!_mesa_is_bufferobj(ctx->Array.VAO->IndexBufferObj)) {      for (i = 0; i < primcount; i++) {         if (!indices[i])            return GL_FALSE;      }   }   return GL_TRUE;}
开发者ID:erdincay,项目名称:vcxsrv-linux2windows,代码行数:44,


示例10: _mesa_GetVertexAttribfvNV

/** * Get a vertex (or vertex array) attribute. * /note Not compiled into display lists. * /note Called from the GL API dispatcher. */void GLAPIENTRY_mesa_GetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params){   const struct gl_client_array *array;   GET_CURRENT_CONTEXT(ctx);   ASSERT_OUTSIDE_BEGIN_END(ctx);   if (index >= MAX_NV_VERTEX_PROGRAM_INPUTS) {      _mesa_error(ctx, GL_INVALID_VALUE, "glGetVertexAttribdvNV(index)");      return;   }   array = &ctx->Array.ArrayObj->VertexAttrib[index];   switch (pname) {      case GL_ATTRIB_ARRAY_SIZE_NV:         params[0] = (GLfloat) array->Size;         break;      case GL_ATTRIB_ARRAY_STRIDE_NV:         params[0] = (GLfloat) array->Stride;         break;      case GL_ATTRIB_ARRAY_TYPE_NV:         params[0] = (GLfloat) array->Type;         break;      case GL_CURRENT_ATTRIB_NV:         if (index == 0) {            _mesa_error(ctx, GL_INVALID_OPERATION,                        "glGetVertexAttribfvNV(index == 0)");            return;         }	 FLUSH_CURRENT(ctx, 0);         COPY_4V(params, ctx->Current.Attrib[index]);         break;      default:         _mesa_error(ctx, GL_INVALID_ENUM, "glGetVertexAttribdvNV");         return;   }}
开发者ID:aljen,项目名称:haiku-opengl,代码行数:43,


示例11: _mesa_validate_DispatchCompute

GLboolean_mesa_validate_DispatchCompute(struct gl_context *ctx,                               const GLuint *num_groups){   int i;   FLUSH_CURRENT(ctx, 0);   if (!check_valid_to_compute(ctx, "glDispatchCompute"))      return GL_FALSE;   for (i = 0; i < 3; i++) {      /* From the OpenGL 4.3 Core Specification, Chapter 19, Compute Shaders:       *       * "An INVALID_VALUE error is generated if any of num_groups_x,       *  num_groups_y and num_groups_z are greater than or equal to the       *  maximum work group count for the corresponding dimension."       *       * However, the "or equal to" portions appears to be a specification       * bug. In all other areas, the specification appears to indicate that       * the number of workgroups can match the MAX_COMPUTE_WORK_GROUP_COUNT       * value. For example, under DispatchComputeIndirect:       *       * "If any of num_groups_x, num_groups_y or num_groups_z is greater than       *  the value of MAX_COMPUTE_WORK_GROUP_COUNT for the corresponding       *  dimension then the results are undefined."       *       * Additionally, the OpenGLES 3.1 specification does not contain "or       * equal to" as an error condition.       */      if (num_groups[i] > ctx->Const.MaxComputeWorkGroupCount[i]) {         _mesa_error(ctx, GL_INVALID_VALUE,                     "glDispatchCompute(num_groups_%c)", 'x' + i);         return GL_FALSE;      }   }   return GL_TRUE;}
开发者ID:erdincay,项目名称:vcxsrv-linux2windows,代码行数:38,


示例12: _mesa_validate_DrawArraysInstanced

GLboolean_mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint first,                                   GLsizei count, GLsizei numInstances){   struct gl_transform_feedback_object *xfb_obj      = ctx->TransformFeedback.CurrentObject;   FLUSH_CURRENT(ctx, 0);   if (count < 0) {      _mesa_error(ctx, GL_INVALID_VALUE,                  "glDrawArraysInstanced(count=%d)", count);      return GL_FALSE;   }   if (first < 0) {      _mesa_error(ctx, GL_INVALID_VALUE,                  "glDrawArraysInstanced(start=%d)", first);      return GL_FALSE;   }   if (!_mesa_valid_prim_mode(ctx, mode, "glDrawArraysInstanced")) {      return GL_FALSE;   }   if (numInstances <= 0) {      if (numInstances < 0)         _mesa_error(ctx, GL_INVALID_VALUE,                     "glDrawArraysInstanced(numInstances=%d)", numInstances);      return GL_FALSE;   }   if (!check_valid_to_render(ctx, "glDrawArraysInstanced(invalid to render)"))      return GL_FALSE;   /* From the GLES3 specification, section 2.14.2 (Transform Feedback    * Primitive Capture):    *    *   The error INVALID_OPERATION is generated by DrawArrays and    *   DrawArraysInstanced if recording the vertices of a primitive to the    *   buffer objects being used for transform feedback purposes would result    *   in either exceeding the limits of any buffer object’s size, or in    *   exceeding the end position offset + size 
C++ FLUSH_VERTICES函数代码示例
C++ FLUSH_BATCH函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。