MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/PhysX / Load

Method Load

physx/samples/sampleframework/renderer/src/Renderer.cpp:926–1041  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

924}
925
926bool FntData::Load(Renderer& renderer, const char* filename)
927{
928 File* fp = NULL;
929 PxToolkit::fopen_s(&fp, filename, "rb");
930 if(!fp)
931 return false;
932
933 // Init texture
934 {
935 const PxU32 width = read32(fp);
936 const PxU32 height = read32(fp);
937 PxU8* data = new PxU8[width*height*4];
938 const size_t size = width*height*4;
939 size_t numRead = fread(data, 1, size, fp);
940 if(numRead != size) { fclose(fp); return false; }
941
942 /* if(gFlip)
943 {
944 PxU32* data32 = (PxU32*)data;
945 for(PxU32 i=0;i<width*height;i++)
946 {
947 Flip(data32[i]);
948 }
949 }*/
950
951 RendererTexture2DDesc tdesc;
952 tdesc.format = RendererTexture2D::FORMAT_B8G8R8A8;
953 tdesc.width = width;
954 tdesc.height = height;
955 tdesc.filter = RendererTexture2D::FILTER_ANISOTROPIC;
956 tdesc.numLevels = 1;
957 /*
958 tdesc.filter;
959 tdesc.addressingU;
960 tdesc.addressingV;
961 tdesc.renderTarget;
962 */
963 PX_ASSERT(tdesc.isValid());
964 mTexture = renderer.createTexture2D(tdesc);
965 PX_ASSERT(mTexture);
966 if(!mTexture)
967 {
968 DELETEARRAY(data);
969 fclose(fp);
970 return false;
971 }
972
973 const PxU32 componentCount = 4;
974
975 if(mTexture)
976 {
977 PxU32 pitch = 0;
978 void* buffer = mTexture->lockLevel(0, pitch);
979 PX_ASSERT(buffer);
980 if(buffer)
981 {
982 PxU8* levelDst = (PxU8*)buffer;
983 const PxU8* levelSrc = (PxU8*)data;

Callers 1

initTexterMethod · 0.45

Calls 11

PxMaxFunction · 0.85
getWidthInBlocksMethod · 0.80
getHeightInBlocksMethod · 0.80
getBlockSizeMethod · 0.80
read32Function · 0.70
FlipFunction · 0.70
fopen_sFunction · 0.50
isValidMethod · 0.45
createTexture2DMethod · 0.45
lockLevelMethod · 0.45
unlockLevelMethod · 0.45

Tested by

no test coverage detected