Revision ae71f169
Added by Leszek Koltunski almost 3 years ago
| src/main/java/org/distorted/library/mesh/MeshBase.java | ||
|---|---|---|
| 811 | 811 |
|
| 812 | 812 |
int index1 = mVBO1.createImmediatelyFloat(mNumVertices*VERT1_SIZE, mVertAttribs1); |
| 813 | 813 |
int index2 = mVBO2.createImmediatelyFloat(mNumVertices*VERT2_SIZE, mVertAttribs2); |
| 814 |
int[] attr = program.mAttribute; |
|
| 814 | 815 |
|
| 815 | 816 |
GLES30.glBindBuffer(GLES30.GL_ARRAY_BUFFER, index1 ); |
| 816 |
GLES30.glVertexAttribPointer(program.mAttribute[0], POS_DATA_SIZE, GLES30.GL_FLOAT, false, VERT1_SIZE, OFFSET_POS);
|
|
| 817 |
GLES30.glVertexAttribPointer(program.mAttribute[1], NOR_DATA_SIZE, GLES30.GL_FLOAT, false, VERT1_SIZE, OFFSET_NOR);
|
|
| 817 |
GLES30.glVertexAttribPointer(attr[0], POS_DATA_SIZE, GLES30.GL_FLOAT, false, VERT1_SIZE, OFFSET_POS);
|
|
| 818 |
GLES30.glVertexAttribPointer(attr[1], NOR_DATA_SIZE, GLES30.GL_FLOAT, false, VERT1_SIZE, OFFSET_NOR);
|
|
| 818 | 819 |
GLES30.glBindBuffer(GLES30.GL_ARRAY_BUFFER, index2 ); |
| 819 |
GLES30.glVertexAttribPointer(program.mAttribute[2], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, VERT2_SIZE, OFFSET_TEX); |
|
| 820 |
GLES30.glVertexAttribPointer(program.mAttribute[3], COM_DATA_SIZE, GLES30.GL_FLOAT, false, VERT2_SIZE, OFFSET_COM); |
|
| 820 |
GLES30.glVertexAttribPointer(attr[2], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, VERT2_SIZE, OFFSET_TEX); |
|
| 821 |
|
|
| 822 |
// if we are not using component centers and there are no vertex effects enabled, |
|
| 823 |
// then this attribute does not exist in the Vertex Shader |
|
| 824 |
if( attr.length>=4 ) |
|
| 825 |
{
|
|
| 826 |
GLES30.glVertexAttribPointer(attr[3], COM_DATA_SIZE, GLES30.GL_FLOAT, false, VERT2_SIZE, OFFSET_COM); |
|
| 827 |
} |
|
| 828 |
|
|
| 821 | 829 |
GLES30.glBindBuffer(GLES30.GL_ARRAY_BUFFER, 0); |
| 822 | 830 |
} |
| 823 | 831 |
|
| src/main/java/org/distorted/library/program/DistortedProgram.java | ||
|---|---|---|
| 191 | 191 |
|
| 192 | 192 |
if( currChar==' ' || currChar=='\t' ) |
| 193 | 193 |
{
|
| 194 |
mNumAttributes++; |
|
| 195 | 194 |
return subline.substring(nameBegin+1,subLen); |
| 196 | 195 |
} |
| 197 | 196 |
} |
| ... | ... | |
| 230 | 229 |
} |
| 231 | 230 |
} |
| 232 | 231 |
|
| 233 |
if( doAttributes ) mAttributeName = attrList.split(" ");
|
|
| 232 |
if( doAttributes ) |
|
| 233 |
{
|
|
| 234 |
mAttributeName = attrList.split(" ");
|
|
| 235 |
mNumAttributes = mAttributeName.length; |
|
| 236 |
} |
|
| 234 | 237 |
} |
| 235 | 238 |
|
| 236 | 239 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 268 | 271 |
return null; |
| 269 | 272 |
} |
| 270 | 273 |
|
| 271 |
if( doAttributes ) mAttributeName = attrList.split(" ");
|
|
| 274 |
if( doAttributes ) |
|
| 275 |
{
|
|
| 276 |
mAttributeName = attrList.split(" ");
|
|
| 277 |
mNumAttributes = mAttributeName.length; |
|
| 278 |
} |
|
| 272 | 279 |
|
| 273 | 280 |
return body.toString(); |
| 274 | 281 |
} |
| ... | ... | |
| 333 | 340 |
|
| 334 | 341 |
private void setUpAttributes() |
| 335 | 342 |
{
|
| 336 |
mAttribute = new int[mNumAttributes];
|
|
| 343 |
int[] att = new int[mNumAttributes];
|
|
| 337 | 344 |
|
| 338 | 345 |
for(int i=0; i<mNumAttributes; i++) |
| 339 | 346 |
{
|
| 340 |
mAttribute[i] = GLES30.glGetAttribLocation( mProgramHandle, mAttributeName[i]);
|
|
| 347 |
att[i] = GLES30.glGetAttribLocation( mProgramHandle, mAttributeName[i]);
|
|
| 341 | 348 |
} |
| 342 | 349 |
|
| 343 | 350 |
int emptyAttrs = 0; |
| 344 | 351 |
|
| 345 | 352 |
for(int i=0; i<mNumAttributes; i++) |
| 346 | 353 |
{
|
| 347 |
if( mAttribute[i] < 0 )
|
|
| 354 |
if( att[i] < 0 )
|
|
| 348 | 355 |
{
|
| 349 | 356 |
emptyAttrs++; |
| 350 | 357 |
|
| 351 | 358 |
for(int j=i; j<mNumAttributes-1; j++) |
| 352 | 359 |
{
|
| 353 |
mAttribute[j] = mAttribute[j+1];
|
|
| 360 |
att[j] = att[j+1];
|
|
| 354 | 361 |
mAttributeName[j] = mAttributeName[j+1]; |
| 355 | 362 |
} |
| 356 | 363 |
} |
| 357 | 364 |
} |
| 358 | 365 |
|
| 359 |
mNumAttributes -= emptyAttrs; |
|
| 366 |
if( emptyAttrs>0 ) |
|
| 367 |
{
|
|
| 368 |
mNumAttributes -= emptyAttrs; |
|
| 369 |
mAttribute = new int[mNumAttributes]; |
|
| 370 |
System.arraycopy(att, 0, mAttribute, 0, mNumAttributes); |
|
| 371 |
} |
|
| 372 |
else |
|
| 373 |
{
|
|
| 374 |
mAttribute = att; |
|
| 375 |
} |
|
| 360 | 376 |
} |
| 361 | 377 |
|
| 362 | 378 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Finally fix the reason foor 'incorrect vertex attribute' message spamming the Log of the Emulator.