Added reasons to assertions
This commit is contained in:
		@@ -14,7 +14,7 @@
 | 
			
		||||
using namespace Dawn;
 | 
			
		||||
 | 
			
		||||
RenderPipeline::RenderPipeline(RenderManager *renderManager) {
 | 
			
		||||
  assertNotNull(renderManager);
 | 
			
		||||
  assertNotNull(renderManager, "RenderPipeline::RenderPipeline: RenderManager cannot be null");
 | 
			
		||||
  this->renderManager = renderManager;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -29,7 +29,7 @@ void RenderPipeline::render() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RenderPipeline::renderScene(Scene *scene) {
 | 
			
		||||
  assertNotNull(scene);
 | 
			
		||||
  assertNotNull(scene, "RenderPipeline::renderScene: Scene cannot be null");
 | 
			
		||||
 | 
			
		||||
  // Render subscenes first.
 | 
			
		||||
  auto subSceneControllers = scene->findComponents<SubSceneController>();
 | 
			
		||||
@@ -82,8 +82,8 @@ void RenderPipeline::renderScene(Scene *scene) {
 | 
			
		||||
void RenderPipeline::renderSceneCamera(Scene *scene, Camera *camera) {
 | 
			
		||||
  std::vector<struct ShaderPassItem>::iterator itPassItem;
 | 
			
		||||
 | 
			
		||||
  assertNotNull(scene);
 | 
			
		||||
  assertNotNull(camera);
 | 
			
		||||
  assertNotNull(scene, "RenderPipeline::renderSceneCamera: Scene cannot be null");
 | 
			
		||||
  assertNotNull(camera, "RenderPipeline::renderSceneCamera: Camera cannot be null");
 | 
			
		||||
 | 
			
		||||
  // Create a new render ID. Long story short this is a really dirty way of 
 | 
			
		||||
  // not sending parameters to shaders more than we need.
 | 
			
		||||
@@ -91,7 +91,7 @@ void RenderPipeline::renderSceneCamera(Scene *scene, Camera *camera) {
 | 
			
		||||
 | 
			
		||||
  // Get the render target.
 | 
			
		||||
  auto renderTarget = camera->getRenderTarget();
 | 
			
		||||
  assertNotNull(renderTarget);
 | 
			
		||||
  assertNotNull(renderTarget, "RenderPipeline::renderSceneCamera: Camera must have a render target");
 | 
			
		||||
 | 
			
		||||
  // Update shader parameter buffers with current knowledge
 | 
			
		||||
  struct RenderPipelineShaderBufferData shaderBufferData;
 | 
			
		||||
@@ -183,7 +183,7 @@ void RenderPipeline::renderSceneCamera(Scene *scene, Camera *camera) {
 | 
			
		||||
    auto itTextureSlot = item.textureSlots.begin();
 | 
			
		||||
    while(itTextureSlot != item.textureSlots.end()) {
 | 
			
		||||
      // Assert texture isn't null, just don't include it.
 | 
			
		||||
      assertNotNull(itTextureSlot->second);
 | 
			
		||||
      assertNotNull(itTextureSlot->second, "RenderPipeline::renderSceneCamera: Texture cannot be null (omit texture instead)");
 | 
			
		||||
 | 
			
		||||
      if(boundTextures[itTextureSlot->first] != itTextureSlot->second) {
 | 
			
		||||
        itTextureSlot->second->bind(itTextureSlot->first);
 | 
			
		||||
 
 | 
			
		||||
@@ -8,8 +8,8 @@
 | 
			
		||||
using namespace Dawn;
 | 
			
		||||
 | 
			
		||||
struct Tile Tileset::getTile(int32_t tile) {
 | 
			
		||||
  assertTrue(tile >= 0);
 | 
			
		||||
  assertTrue(tile < this->tiles.size());
 | 
			
		||||
  assertTrue(tile >= 0, "Tileset::getTile: Tile must be greater than or equal to 0");
 | 
			
		||||
  assertTrue(tile < this->tiles.size(), "Tileset::getTile: Tile is out of bounds");
 | 
			
		||||
  return this->tiles[tile];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -55,16 +55,16 @@ TilesetGrid::TilesetGrid(
 | 
			
		||||
  int32_t borderX,
 | 
			
		||||
  int32_t borderY
 | 
			
		||||
) {
 | 
			
		||||
  assertTrue(columns >= 1);
 | 
			
		||||
  assertTrue(rows >= 1);
 | 
			
		||||
  assertTrue(w >= 1);
 | 
			
		||||
  assertTrue(h >= 1);
 | 
			
		||||
  assertTrue(gapX >= 0);
 | 
			
		||||
  assertTrue(gapY >= 0);
 | 
			
		||||
  assertTrue(borderX >= 0);
 | 
			
		||||
  assertTrue(borderY >= 0);
 | 
			
		||||
  assertTrue(w >= (columns + (gapX * columns) + borderX + borderX));
 | 
			
		||||
  assertTrue(h >= (rows + (gapY * rows) + borderY + borderY));
 | 
			
		||||
  assertTrue(columns >= 1, "TilesetGrid::TilesetGrid: Columns must be greater than or equal to 1");
 | 
			
		||||
  assertTrue(rows >= 1, "TilesetGrid::TilesetGrid: Rows must be greater than or equal to 1");
 | 
			
		||||
  assertTrue(w >= 1, "TilesetGrid::TilesetGrid: Width must be greater than or equal to 1");
 | 
			
		||||
  assertTrue(h >= 1, "TilesetGrid::TilesetGrid: Height must be greater than or equal to 1");
 | 
			
		||||
  assertTrue(gapX >= 0, "TilesetGrid::TilesetGrid: GapX must be greater than or equal to 0");
 | 
			
		||||
  assertTrue(gapY >= 0, "TilesetGrid::TilesetGrid: GapY must be greater than or equal to 0");
 | 
			
		||||
  assertTrue(borderX >= 0, "TilesetGrid::TilesetGrid: BorderX must be greater than or equal to 0");
 | 
			
		||||
  assertTrue(borderY >= 0, "TilesetGrid::TilesetGrid: BorderY must be greater than or equal to 0");
 | 
			
		||||
  assertTrue(w >= (columns + (gapX * columns) + borderX + borderX), "TilesetGrid::TilesetGrid: Width is too small");
 | 
			
		||||
  assertTrue(h >= (rows + (gapY * rows) + borderY + borderY), "TilesetGrid::TilesetGrid: Height is too small");
 | 
			
		||||
 | 
			
		||||
  this->rows = rows;
 | 
			
		||||
  this->columns = columns;
 | 
			
		||||
@@ -99,7 +99,7 @@ float_t TilesetGrid::getTileHeight(int32_t tile) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct Tile TilesetGrid::getTileFromGrid(int32_t column, int32_t row) {
 | 
			
		||||
  assertTrue(row > 0 && row < this->rows);
 | 
			
		||||
  assertTrue(column > 0 && column < this->columns);
 | 
			
		||||
  assertTrue(row > 0 && row < this->rows, "TilesetGrid::getTileFromGrid: Row is out of bounds");
 | 
			
		||||
  assertTrue(column > 0 && column < this->columns, "TilesetGrid::getTileFromGrid: Column is out of bounds");
 | 
			
		||||
  return this->getTile(row + (column * this->rows));
 | 
			
		||||
}
 | 
			
		||||
@@ -13,7 +13,7 @@ Transform::Transform(SceneItem *item) :
 | 
			
		||||
  transformLocal(1.0f),
 | 
			
		||||
  transformWorld(1.0f)
 | 
			
		||||
{
 | 
			
		||||
  assertNotNull(item);
 | 
			
		||||
  assertNotNull(item, "Transform::Transform: Item cannot be null");
 | 
			
		||||
  
 | 
			
		||||
  this->item = item;
 | 
			
		||||
  this->updateLocalValuesFromLocalTransform();
 | 
			
		||||
@@ -147,7 +147,7 @@ void Transform::setWorldTransform(glm::mat4 transform) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Transform::setParent(Transform *parent) {
 | 
			
		||||
  assertTrue(parent == nullptr || parent != this);
 | 
			
		||||
  assertTrue(parent == nullptr || parent != this, "Transform::setParent: Cannot set parent to self");
 | 
			
		||||
  
 | 
			
		||||
  auto currentParent = this->getParent();
 | 
			
		||||
  if(currentParent == parent) return;
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ namespace Dawn {
 | 
			
		||||
       * @param game Game that this render manager belongs to.
 | 
			
		||||
       */
 | 
			
		||||
      IRenderManager(DawnGame *game) {
 | 
			
		||||
        assertNotNull(game);
 | 
			
		||||
        assertNotNull(game, "IRenderManager::IRenderManager: Game cannot be null");
 | 
			
		||||
        this->game = game;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ namespace Dawn {
 | 
			
		||||
       * @param modifies Pointer to the value that will be modified.
 | 
			
		||||
       */
 | 
			
		||||
      SimpleAnimation(T *modifies) {
 | 
			
		||||
        assertNotNull(modifies);
 | 
			
		||||
        assertNotNull(modifies, "SimpleAnimation::SimpleAnimation: Modifies cannot be null");
 | 
			
		||||
        this->modifies = modifies;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@@ -59,7 +59,7 @@ namespace Dawn {
 | 
			
		||||
       * @param value Value at this given time.
 | 
			
		||||
       */
 | 
			
		||||
      void addKeyframe(float_t time, T value) {
 | 
			
		||||
        assertTrue(time >= 0);
 | 
			
		||||
        assertTrue(time >= 0, "SimpleAnimation::addKeyframe: Time must be >= 0");
 | 
			
		||||
        
 | 
			
		||||
        struct SimpleKeyframe<T> keyframe;
 | 
			
		||||
        keyframe.time = time;
 | 
			
		||||
 
 | 
			
		||||
@@ -11,14 +11,14 @@ TrueTypeFaceTexture::TrueTypeFaceTexture(
 | 
			
		||||
  FT_Face face,
 | 
			
		||||
  struct TrueTypeFaceTextureStyle style
 | 
			
		||||
) {
 | 
			
		||||
  assertTrue(style.fontSize < 256);
 | 
			
		||||
  assertTrue(style.fontSize < 256, "TrueTypeFaceTexture::TrueTypeFaceTexture: Font size cannot be greater than 256");
 | 
			
		||||
 | 
			
		||||
  this->face = face;
 | 
			
		||||
  this->style = style;
 | 
			
		||||
 | 
			
		||||
  // Set freetype font size prior to baking.
 | 
			
		||||
  if(FT_Set_Pixel_Sizes(face, 0, style.fontSize)) {
 | 
			
		||||
    assertUnreachable();
 | 
			
		||||
    assertUnreachable("TrueTypeFaceTexture::TrueTypeFaceTexture: Failed to set font size");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  size_t w = 0, h = 0;
 | 
			
		||||
@@ -29,7 +29,7 @@ TrueTypeFaceTexture::TrueTypeFaceTexture(
 | 
			
		||||
    // Load the character
 | 
			
		||||
    auto ret = FT_Load_Char(face, c, FT_LOAD_BITMAP_METRICS_ONLY);
 | 
			
		||||
    if(ret) {
 | 
			
		||||
      assertUnreachable();
 | 
			
		||||
      assertUnreachable("TrueTypeFaceTexture::TrueTypeFaceTexture: Failed to load character (0)");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(face->glyph->bitmap.width == 0 || face->glyph->bitmap.rows == 0) continue;
 | 
			
		||||
@@ -39,8 +39,8 @@ TrueTypeFaceTexture::TrueTypeFaceTexture(
 | 
			
		||||
    h += face->glyph->bitmap.rows;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  assertTrue(w > 0);
 | 
			
		||||
  assertTrue(h > 0);
 | 
			
		||||
  assertTrue(w > 0, "TrueTypeFaceTexture::TrueTypeFaceTexture: Width cannot be less than or equal to 0");
 | 
			
		||||
  assertTrue(h > 0, "TrueTypeFaceTexture::TrueTypeFaceTexture: Height cannot be less than or equal to 0");
 | 
			
		||||
 | 
			
		||||
  // Now buffer pixels to the texture
 | 
			
		||||
  float_t y = 0;
 | 
			
		||||
@@ -54,7 +54,7 @@ TrueTypeFaceTexture::TrueTypeFaceTexture(
 | 
			
		||||
  for(c = TRUE_TYPE_CHAR_BEGIN; c < TRUE_TYPE_CHAR_END; c++) {
 | 
			
		||||
    // Load the character
 | 
			
		||||
    if(FT_Load_Char(face, c, FT_LOAD_RENDER)) {
 | 
			
		||||
      assertUnreachable();
 | 
			
		||||
      assertUnreachable("TrueTypeFaceTexture::TrueTypeFaceTexture: Failed to load character (1)");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Store the character information
 | 
			
		||||
@@ -74,7 +74,7 @@ TrueTypeFaceTexture::TrueTypeFaceTexture(
 | 
			
		||||
        face->glyph->bitmap.width * sizeof(uint8_t)
 | 
			
		||||
      );
 | 
			
		||||
      offset += w * sizeof(uint8_t);
 | 
			
		||||
      assertTrue(offset <= (w * h * sizeof(uint8_t)));
 | 
			
		||||
      assertTrue(offset <= (w * h * sizeof(uint8_t)), "TrueTypeFaceTexture::TrueTypeFaceTexture: Buffer overflow");
 | 
			
		||||
    }
 | 
			
		||||
    y += face->glyph->bitmap.rows;
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ void CapsuleMesh::calculateRing(
 | 
			
		||||
  float_t dy,
 | 
			
		||||
  std::vector<glm::vec3> *positions
 | 
			
		||||
) {
 | 
			
		||||
  assertNotNull(positions);
 | 
			
		||||
  assertNotNull(positions, "CapsuleMesh::calculateRing: positions cannot be null");
 | 
			
		||||
  float_t segIncr = 1.0f / (float_t)(segments - 1);
 | 
			
		||||
  for(int32_t s = 0; s < segments; s++ ) {
 | 
			
		||||
    float_t x = cosf(MATH_PI * 2 * s * segIncr) * dr;
 | 
			
		||||
@@ -30,7 +30,7 @@ void CapsuleMesh::create(
 | 
			
		||||
  float_t radius,
 | 
			
		||||
  float_t height
 | 
			
		||||
) {
 | 
			
		||||
  assertNotNull(mesh);
 | 
			
		||||
  assertNotNull(mesh, "CapsuleMesh::create: Mesh cannot be null");
 | 
			
		||||
 | 
			
		||||
  std::vector<glm::vec3> positions;
 | 
			
		||||
  std::vector<meshindice_t> indices;
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ void CubeMesh::buffer(
 | 
			
		||||
  glm::vec3 pos, glm::vec3 size,
 | 
			
		||||
  int32_t verticeStart, int32_t indiceStart
 | 
			
		||||
) {
 | 
			
		||||
  assertNotNull(mesh);
 | 
			
		||||
  assertNotNull(mesh, "CubeMesh::buffer: Mesh cannot be null");
 | 
			
		||||
 | 
			
		||||
  glm::vec3 positions[CUBE_VERTICE_COUNT] = {
 | 
			
		||||
    pos, 
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ void QuadMesh::bufferQuadMeshWithZ(
 | 
			
		||||
  glm::vec2 xy1, glm::vec2 uv1,
 | 
			
		||||
  float_t z, int32_t verticeStart, int32_t indiceStart
 | 
			
		||||
) {
 | 
			
		||||
  assertNotNull(mesh);
 | 
			
		||||
  assertNotNull(mesh, "QuadMesh::bufferQuadMeshWithZ: Mesh cannot be null");
 | 
			
		||||
 | 
			
		||||
  glm::vec3 positions[QUAD_VERTICE_COUNT] = {
 | 
			
		||||
    glm::vec3(xy0, z),
 | 
			
		||||
@@ -51,7 +51,7 @@ void QuadMesh::bufferCoordinates(
 | 
			
		||||
  glm::vec2 uv0, glm::vec2 uv1,
 | 
			
		||||
  int32_t verticeStart
 | 
			
		||||
) {
 | 
			
		||||
  assertNotNull(mesh);
 | 
			
		||||
  assertNotNull(mesh, "QuadMesh::bufferCoordinates: Mesh cannot be null");
 | 
			
		||||
  glm::vec2 coordinates[QUAD_VERTICE_COUNT] = {
 | 
			
		||||
    uv0, glm::vec2(uv1.x, uv0.y),
 | 
			
		||||
    glm::vec2(uv0.x, uv1.y), uv1
 | 
			
		||||
@@ -64,7 +64,7 @@ void QuadMesh::bufferPositions(
 | 
			
		||||
  glm::vec2 xy0, glm::vec2 xy1,
 | 
			
		||||
  int32_t verticeStart
 | 
			
		||||
) {
 | 
			
		||||
  assertNotNull(mesh);
 | 
			
		||||
  assertNotNull(mesh, "QuadMesh::bufferPositions: Mesh cannot be null");
 | 
			
		||||
  glm::vec3 positions[QUAD_VERTICE_COUNT] = {
 | 
			
		||||
    glm::vec3(xy0, 0),
 | 
			
		||||
    glm::vec3(xy1.x, xy0.y, 0),
 | 
			
		||||
@@ -80,7 +80,7 @@ void QuadMesh::initQuadMesh(
 | 
			
		||||
  glm::vec2 xy1, glm::vec2 uv1,
 | 
			
		||||
  float_t z
 | 
			
		||||
) {
 | 
			
		||||
  assertNotNull(mesh);
 | 
			
		||||
  assertNotNull(mesh, "QuadMesh::initQuadMesh: Mesh cannot be null");
 | 
			
		||||
  mesh->createBuffers(QUAD_VERTICE_COUNT, QUAD_INDICE_COUNT);
 | 
			
		||||
  QuadMesh::bufferQuadMeshWithZ(mesh, xy0, uv0, xy1, uv1, z, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
using namespace Dawn;
 | 
			
		||||
 | 
			
		||||
void TriangleMesh::createTriangleMesh(Mesh *mesh) {
 | 
			
		||||
  assertNotNull(mesh);
 | 
			
		||||
  assertNotNull(mesh, "TriangleMesh::createTriangleMesh: Mesh cannot be null");
 | 
			
		||||
 | 
			
		||||
  glm::vec3 positions[3] = {
 | 
			
		||||
    glm::vec3(-0.5f, -0.5f, 0),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user