Skip to content

Commit 8392a44

Browse files
committed
Fixed assert macros, and improved error handling.
1 parent 6573fc4 commit 8392a44

35 files changed

+708
-620
lines changed

examples/13-stencil/stencil.cpp

+24-22
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
namespace bgfx
1717
{
18-
int32_t read(bx::ReaderI* _reader, bgfx::VertexLayout& _layout, bx::Error* _err = NULL);
18+
int32_t read(bx::ReaderI* _reader, bgfx::VertexLayout& _layout, bx::Error* _err);
1919
}
2020

2121
namespace
@@ -650,24 +650,26 @@ struct Mesh
650650

651651
Group group;
652652

653+
bx::Error err;
654+
653655
uint32_t chunk;
654-
while (4 == bx::read(reader, chunk) )
656+
while (4 == bx::read(reader, chunk, &err) )
655657
{
656658
switch (chunk)
657659
{
658660
case BGFX_CHUNK_MAGIC_VB:
659661
{
660-
bx::read(reader, group.m_sphere);
661-
bx::read(reader, group.m_aabb);
662-
bx::read(reader, group.m_obb);
662+
bx::read(reader, group.m_sphere, &err);
663+
bx::read(reader, group.m_aabb, &err);
664+
bx::read(reader, group.m_obb, &err);
663665

664-
bgfx::read(reader, m_layout);
666+
bgfx::read(reader, m_layout, &err);
665667
uint16_t stride = m_layout.getStride();
666668

667669
uint16_t numVertices;
668-
bx::read(reader, numVertices);
670+
bx::read(reader, numVertices, &err);
669671
const bgfx::Memory* mem = bgfx::alloc(numVertices*stride);
670-
bx::read(reader, mem->data, mem->size);
672+
bx::read(reader, mem->data, mem->size, &err);
671673

672674
group.m_vbh = bgfx::createVertexBuffer(mem, m_layout);
673675
}
@@ -676,41 +678,41 @@ struct Mesh
676678
case BGFX_CHUNK_MAGIC_IB:
677679
{
678680
uint32_t numIndices;
679-
bx::read(reader, numIndices);
681+
bx::read(reader, numIndices, &err);
680682
const bgfx::Memory* mem = bgfx::alloc(numIndices*2);
681-
bx::read(reader, mem->data, mem->size);
683+
bx::read(reader, mem->data, mem->size, &err);
682684
group.m_ibh = bgfx::createIndexBuffer(mem);
683685
}
684686
break;
685687

686688
case BGFX_CHUNK_MAGIC_PRI:
687689
{
688690
uint16_t len;
689-
bx::read(reader, len);
691+
bx::read(reader, len, &err);
690692

691693
std::string material;
692694
material.resize(len);
693-
bx::read(reader, const_cast<char*>(material.c_str() ), len);
695+
bx::read(reader, const_cast<char*>(material.c_str() ), len, &err);
694696

695697
uint16_t num;
696-
bx::read(reader, num);
698+
bx::read(reader, num, &err);
697699

698700
for (uint32_t ii = 0; ii < num; ++ii)
699701
{
700-
bx::read(reader, len);
702+
bx::read(reader, len, &err);
701703

702704
std::string name;
703705
name.resize(len);
704-
bx::read(reader, const_cast<char*>(name.c_str() ), len);
706+
bx::read(reader, const_cast<char*>(name.c_str() ), len, &err);
705707

706708
Primitive prim;
707-
bx::read(reader, prim.m_startIndex);
708-
bx::read(reader, prim.m_numIndices);
709-
bx::read(reader, prim.m_startVertex);
710-
bx::read(reader, prim.m_numVertices);
711-
bx::read(reader, prim.m_sphere);
712-
bx::read(reader, prim.m_aabb);
713-
bx::read(reader, prim.m_obb);
709+
bx::read(reader, prim.m_startIndex, &err);
710+
bx::read(reader, prim.m_numIndices, &err);
711+
bx::read(reader, prim.m_startVertex, &err);
712+
bx::read(reader, prim.m_numVertices, &err);
713+
bx::read(reader, prim.m_sphere, &err);
714+
bx::read(reader, prim.m_aabb, &err);
715+
bx::read(reader, prim.m_obb, &err);
714716

715717
group.m_prims.push_back(prim);
716718
}

examples/14-shadowvolumes/shadowvolumes.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1067,7 +1067,6 @@ struct Model
10671067
::setRenderState(_renderState);
10681068

10691069
// Submit
1070-
BX_ASSERT(bgfx::kInvalidHandle != m_program, "Error, program is not set.");
10711070
::submit(_viewId, m_program);
10721071
}
10731072
}

examples/16-shadowmaps/shadowmaps.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2326,7 +2326,7 @@ class ExampleShadowmaps : public entry::AppI
23262326

23272327
// Compute split distances.
23282328
const uint8_t maxNumSplits = 4;
2329-
BX_ASSERT(maxNumSplits >= settings.m_numSplits, "Error! Max num splits.");
2329+
BX_ASSERT(maxNumSplits >= m_settings.m_numSplits, "Error! Max num splits.");
23302330

23312331
float splitSlices[maxNumSplits*2];
23322332
splitFrustum(splitSlices

examples/42-bunnylod/bunnylod.cpp

+17-10
Original file line numberDiff line numberDiff line change
@@ -188,21 +188,25 @@ class ExampleBunnyLOD : public entry::AppI
188188
m_cachePermutation = NULL;
189189
m_originalVertices = 0;
190190

191+
bx::Error err;
192+
191193
bx::FileReader reader;
192194

193195
if (bx::open(&reader, kCacheFilePath) )
194196
{
195-
bx::read(&reader, m_originalVertices);
196-
bx::read(&reader, m_totalVertices);
197+
bx::read(&reader, m_originalVertices, &err);
198+
bx::read(&reader, m_totalVertices, &err);
197199
m_cacheWeld = (uint32_t*)BX_ALLOC(entry::getAllocator(), m_originalVertices * sizeof(uint32_t) );
198200

199-
bx::read(&reader, m_cacheWeld, m_originalVertices * sizeof(uint32_t) );
201+
bx::read(&reader, m_cacheWeld, m_originalVertices * sizeof(uint32_t), &err);
200202
m_cachePermutation = (uint32_t*)BX_ALLOC(entry::getAllocator(), m_totalVertices * sizeof(uint32_t) );
201203

202-
bx::read(&reader, m_cachePermutation, m_totalVertices * sizeof(uint32_t) );
204+
bx::read(&reader, m_cachePermutation, m_totalVertices * sizeof(uint32_t), &err);
203205
m_map = (uint32_t*)BX_ALLOC(entry::getAllocator(), m_totalVertices * sizeof(uint32_t) );
204206

205-
if (bx::read(&reader, m_map, m_totalVertices * sizeof(uint32_t) ) != int32_t(m_totalVertices * sizeof(uint32_t) ) )
207+
bx::read(&reader, m_map, m_totalVertices * sizeof(uint32_t), &err);
208+
209+
if (!err.isOk() )
206210
{
207211
// read fail
208212
BX_FREE(entry::getAllocator(), m_cacheWeld);
@@ -225,11 +229,14 @@ class ExampleBunnyLOD : public entry::AppI
225229

226230
if (bx::open(&writer, kCacheFilePath) )
227231
{
228-
bx::write(&writer, m_originalVertices);
229-
bx::write(&writer, m_totalVertices);
230-
bx::write(&writer, m_cacheWeld, m_originalVertices * sizeof(uint32_t) );
231-
bx::write(&writer, m_cachePermutation, m_totalVertices * sizeof(uint32_t) );
232-
bx::write(&writer, m_map, m_totalVertices * sizeof(uint32_t) );
232+
bx::Error err;
233+
234+
bx::write(&writer, m_originalVertices, &err);
235+
bx::write(&writer, m_totalVertices, &err);
236+
bx::write(&writer, m_cacheWeld, m_originalVertices * sizeof(uint32_t), &err);
237+
bx::write(&writer, m_cachePermutation, m_totalVertices * sizeof(uint32_t), &err);
238+
bx::write(&writer, m_map, m_totalVertices * sizeof(uint32_t), &err);
239+
233240
bx::close(&writer);
234241
}
235242
}

examples/45-bokeh/bokeh.cpp

+7-8
Original file line numberDiff line numberDiff line change
@@ -904,9 +904,9 @@ class ExampleBokeh : public entry::AppI
904904
{
905905
bgfx::destroy(m_bokehTexture);
906906
}
907-
BX_ASSERT(0 < _lobeCount);
907+
BX_ASSERT(0 < _lobeCount, "");
908908

909-
const uint32_t bokehSize = 128;
909+
const int32_t bokehSize = 128;
910910

911911
const bgfx::Memory* mem = bgfx::alloc(bokehSize*bokehSize*4);
912912
bx::memSet(mem->data, 0x00, bokehSize*bokehSize*4);
@@ -926,8 +926,7 @@ class ExampleBokeh : public entry::AppI
926926

927927
// apply shape to circular distribution
928928
const float shapeScale = bokehShapeFromAngle(_lobeCount, _lobeRadiusMin, radiusDelta2x, _lobeRotation, theta);
929-
BX_ASSERT(_lobeRadiusMin <= shapeScale);
930-
BX_ASSERT(shapeScale <= _maxRadius);
929+
BX_ASSERT(_lobeRadiusMin <= shapeScale, "");
931930

932931
float spiralCoordX = bx::cos(theta) * (radius * shapeScale);
933932
float spiralCoordY = bx::sin(theta) * (radius * shapeScale);
@@ -941,10 +940,10 @@ class ExampleBokeh : public entry::AppI
941940
int32_t pixelCoordX = int32_t(bx::floor(spiralCoordX * float(bokehSize-1) + 0.5f));
942941
int32_t pixelCoordY = int32_t(bx::floor(spiralCoordY * float(bokehSize-1) + 0.5f));
943942

944-
BX_ASSERT(0 <= pixelCoordX);
945-
BX_ASSERT(0 <= pixelCoordY);
946-
BX_ASSERT(pixelCoordX < bokehSize);
947-
BX_ASSERT(pixelCoordY < bokehSize);
943+
BX_ASSERT(0 <= pixelCoordX, "");
944+
BX_ASSERT(0 <= pixelCoordY, "");
945+
BX_ASSERT(pixelCoordX < bokehSize, "");
946+
BX_ASSERT(pixelCoordY < bokehSize, "");
948947

949948
// plot sample position, track for total samples
950949
uint32_t offset = (pixelCoordY * bokehSize + pixelCoordX) * 4;

0 commit comments

Comments
 (0)