2017-01-12 7 views
-1

Я работаю над Android-приложением, использующим OpenGL ES 2.0. Когда я пытаюсь сделать мои примитивы из массива данных со следующей строки ...Получение ошибки «Нет атрибута вершины включен в призыве рисования» на glDrawElements

// primitiveType is a GLenum with a value of 1 
// batch->GetIndexCount() returns a size_t with a value of 65528 
// indexType is a GLenum with a value of 5123 
// Passing 0 as the indices parameter since an ELEMENT_ARRAY_BUFFER is bound (0 will be treated as an offset within the buffer) 
GL_CHECK(glDrawElements(primitiveType, static_cast<GLsizei>(batch->GetIndexCount()), indexType, 0)); 

Я получаю следующее сообщение об ошибке:

I/Adreno-ES20: <validate_vertex_attrib_state:55>: validate_vertex_attrib_state: No vertex attrib is enabled in a draw call! 
W/Adreno-ES20: <core_glDrawElementsInstancedXXX:1014>: GL_INVALID_VALUE 
D/libEGL: [glDrawElements] 0x501 
D/glGetError:glDrawElements: #00 pc 00002a31 /system/lib/libbacktrace.so (Backtrace::Unwind(unsigned int, ucontext*)+8) 
D/glGetError:glDrawElements: #01 pc 0000ba41 /system/lib/libutils.so (android::CallStack::update(int, int)+52) 
D/glGetError:glDrawElements: #02 pc 00025ff5 /system/lib/libEGL.so 
D/glGetError:glDrawElements: #03 pc 000cea14 /data/app/com.sample.openglesapp/lib/arm/libgl_code.so (OpenGLESHelper::DrawBatch(OpenGLESApp::Graphics::PrimitiveBatch*)+720) 
D/glGetError:glDrawElements: #04 pc 00129038 /data/app/com.sample.openglesapp/lib/arm/libgl_code.so (RendererOpenGLES::Render_DrawBatch(OpenGLESApp::Graphics::PrimitiveBatch*)+52) 
D/glGetError:glDrawElements: #05 pc 000d4b80 /data/app/com.sample.openglesapp/lib/arm/libgl_code.so (OpenGLESApp::Graphics::RendererBase<OpenGLESApp::Graphics::Rendering3D::Camera>::Render()+532) 
D/glGetError:glDrawElements: #06 pc 00161bd8 /data/app/com.sample.openglesapp/lib/arm/libgl_code.so (RenderFrame()+344) 
D/glGetError:glDrawElements: #07 pc 00161cc0 /data/app/com.sample.openglesapp/lib/arm/libgl_code.so (Java_com_sample_openglesapp_GL2JNILib_step+20) 
D/glGetError:glDrawElements: #08 pc 000db0e1 /data/dalvik-cache/arm/[email protected]@[email protected]@classes.dex 

Согласно документации 2.0 OpenGL ES, glDrawElements returns a GL_INVALID_VALUE error code, когда счетчик (второй параметр) отрицательный, что здесь не так. Кроме того, атрибуты вершин включены. Что еще может быть причиной этой проблемы?

+0

Не отвечает ли ваш вопрос на ваш вопрос? Довольно ясно, что не так. Если это не так, пожалуйста, напишите минимальный полный проверяемый пример (http://stackoverflow.com/help/mcve). Невозможно помочь, когда мы не сможем увидеть ваш код. – solidpixel

ответ

0

Перейдите по вашему вершинному шейдеру.

Если синтаксис или вычисление неправильно в вашем вершинном шейдере, вы можете увидеть сообщение «Нет Vertex Attrib не включен в розыгрыше вызова»

или

Если ваши один из показателей относятся к неправильному номеру она может бывает.