X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2FIVideoDriver.cpp;h=61333989136cdecf3f75933c93084e7d41acd2fc;hb=refs%2Fheads%2Fmaster;hp=14d8fa91c4f27631d8d8487f72046a820910c6b0;hpb=7e46627fbadd2bcf8169ae429e6fe0a546d2797a;p=c-irrlicht.git diff --git a/src/IVideoDriver.cpp b/src/IVideoDriver.cpp index 14d8fa9..6133398 100644 --- a/src/IVideoDriver.cpp +++ b/src/IVideoDriver.cpp @@ -26,91 +26,41 @@ extern "C" { int irr_video_beginScene(irr_video_IVideoDriver* driver, - int backBuffer, - int zBuffer, + bool backBuffer, + bool zBuffer, const irr_video_SColor* color, irr_video_SExposedVideoData* videoData, const irr_core_rect_s32* sourceRect) { - // Color - irr::video::SColor col = irr::video::SColor(color->a, color->r, - color->g, color->b); - // Video data // TODO irr::video::SExposedVideoData vdata = irr::video::SExposedVideoData(); - // Source rect - irr::core::rect rect; - if (sourceRect != NULL) - { - rect = irr::core::rect(sourceRect->x, - sourceRect->y, - sourceRect->x2, - sourceRect->y2); - } - // Begin scene return ((irr::video::IVideoDriver*)driver) ->beginScene(backBuffer, zBuffer, - col, + *(irr::video::SColor*)color, vdata, - sourceRect != NULL ? &rect : 0); + (irr::core::rect*)sourceRect); } void irr_video_drawVertexPrimitiveList(irr_video_IVideoDriver* driver, const void* vertices, - unsigned int vertexCount, + uint32_t vertexCount, const void* indexList, - unsigned int primCount, + uint32_t 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, + ->drawVertexPrimitiveList(vertices, vertexCount, + indexList, primCount, (irr::video::E_VERTEX_TYPE)vType, (irr::scene::E_PRIMITIVE_TYPE)pType, (irr::video::E_INDEX_TYPE)iType); - - free(irrIndexList); } int @@ -145,13 +95,9 @@ extern "C" { void irr_video_setMaterial(irr_video_IVideoDriver* driver, - const irr_video_SMaterial material) + irr_video_SMaterial* material) { - irr::video::SMaterial irrMaterial = irr::video::SMaterial(); - irrMaterial.Lighting = material.lighting; - irrMaterial.Wireframe = material.wireframe; - - ((irr::video::IVideoDriver*)driver)->setMaterial(irrMaterial); + ((irr::video::IVideoDriver*)driver)->setMaterial(*(irr::video::SMaterial*)material); } void