Skip to content

Commit

Permalink
Accept additional parameters to vertexAttribPointer().
Browse files Browse the repository at this point in the history
Accept 'offset' parameter to vertexAttribPointer.
Accept JavaScript boolean for 'normalized' parameter.
  • Loading branch information
cscott committed Dec 8, 2011
1 parent ec4661c commit 622041e
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions glesbindings/glesbind.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,16 +146,19 @@ Handle<Value> GLESglShaderSourceCallback(const Arguments& args) {


Handle<Value> GLESglVertexAttribPointerCallback(const Arguments& args) {
if (args.Length() != 6 || !args[0]->IsUint32() || !args[1]->IsUint32() ||
!args[2]->IsUint32() || !args[3]->IsUint32() ||
!args[4]->IsNumber())
if (args.Length() < 6 || !args[0]->IsUint32() || !args[1]->IsUint32() ||
!args[2]->IsUint32() || !(args[3]->IsUint32() || args[3]->IsBoolean()) ||
!args[4]->IsNumber() || (args.Length() > 6 && !args[6]->IsUint32()))
return ThrowException(String::New("Bad arguments"));

unsigned int index = args[0]->Uint32Value();
unsigned int size = args[1]->Uint32Value();
unsigned int type = args[2]->Uint32Value();
unsigned int normalized = args[3]->Uint32Value();
bool normalized = args[3]->BooleanValue();
int stride = args[4]->IntegerValue();
unsigned int offset = 0;
if (args.Length() > 6)
offset = args[6]->Uint32Value();
void* ans;

if(args[5]->IsArray()) {
Expand Down Expand Up @@ -233,9 +236,9 @@ Handle<Value> GLESglVertexAttribPointerCallback(const Arguments& args) {
glVertexAttribPointer((GLuint)index,
(GLint)size,
(GLenum)type,
(GLboolean)normalized,
(normalized?GL_TRUE:GL_FALSE),
(GLsizei)stride,
(const void*)ans);
((const void*)ans)+offset);

//should I delete[] ans?

Expand Down

0 comments on commit 622041e

Please sign in to comment.