X-Git-Url: https://git.jsancho.org/?p=c-irrlicht.git;a=blobdiff_plain;f=src%2FIVideoDriver.cpp;fp=src%2FIVideoDriver.cpp;h=14d8fa91c4f27631d8d8487f72046a820910c6b0;hp=50ee3454283db4ec73ea0d2d7c634c489f0ae4ab;hb=7e46627fbadd2bcf8169ae429e6fe0a546d2797a;hpb=482d9e598cce378cdb7f5568c9efe5befe579494 diff --git a/src/IVideoDriver.cpp b/src/IVideoDriver.cpp index 50ee345..14d8fa9 100644 --- a/src/IVideoDriver.cpp +++ b/src/IVideoDriver.cpp @@ -59,6 +59,60 @@ extern "C" { sourceRect != NULL ? &rect : 0); } + void + irr_video_drawVertexPrimitiveList(irr_video_IVideoDriver* driver, + const void* vertices, + unsigned int vertexCount, + const void* indexList, + unsigned int primCount, + irr_video_E_VERTEX_TYPE vType, + irr_scene_E_PRIMITIVE_TYPE pType, + irr_video_E_INDEX_TYPE iType) + { + // Convert vertices + irr::video::S3DVertex irrVertices[vertexCount]; + for (int i=0; ipos.x, vertex->pos.y, vertex->pos.z, + vertex->normal.x, vertex->normal.y, vertex->normal.z, + irr::video::SColor(vertex->color.a, + vertex->color.r, + vertex->color.g, + vertex->color.b), + vertex->tCoords.x, vertex->tCoords.y); + } + + // Convert indices + size_t indexListSize = + ((iType == irr_video_EIT_16BIT) ? sizeof(irr::u16) : sizeof(irr::u32)) * + primCount * 3; + void* irrIndexList = malloc(indexListSize); + + for (int i=0; idrawVertexPrimitiveList(&irrVertices[0], vertexCount, + irrIndexList, primCount, + (irr::video::E_VERTEX_TYPE)vType, + (irr::scene::E_PRIMITIVE_TYPE)pType, + (irr::video::E_INDEX_TYPE)iType); + + free(irrIndexList); + } + int irr_video_endScene(irr_video_IVideoDriver* driver) {