Initialization of all Vertices to -1.0f

Hey, i have a Brick struct with some simple getters/setter of x,y/width,height.

the brick struct also have a float 4x4matrix which contains the matrix that i sent to the vertexshader.

what i want is:

  1. when i create a Brick object it should be initialized in the bottom left corner i.e x, y, width and height is all initilized to -1.0f.

Problem: However, the object is dependent on the generic vertexBuffer position values. So i tried to set all Vertexposition values to -1.0f. But then the setters (x, y, widht, height) doesn’t work (i.e if i increase the width and height the image don’t scale and get visible).

However it does work if some value are ALMOST set to -1.0f.

Here’s the Brick struct

struct Brick
{
	float matrix[4][4];

	float x 		= matrix[0][0];
	float y 		= matrix[1][0];
	float width 	= matrix[0][3];
	float height 	= matrix[1][3];


	float getX()
	{
		return matrix[0][3] - matrix[0][0];
	}

	float getY()
	{
		return matrix[1][3] - matrix[1][1];
	}

	float getWidth()
	{
		return matrix[0][0];
	}
	float getHeight()
	{
		return matrix[1][1];
	}

	void setX(float value)
	{
		matrix[0][3] += value; 
	}

	void setY(float value)
	{
		matrix[1][3] += value; 
	}

	void setWidth(float value)
	{
		matrix[0][0]  += value;
		matrix[0][3]  += value;
	}

	void setHeight(float value)
	{
		matrix[1][1]  += value;
		matrix[1][3]  += value;
	}
};

Vertices that work

	float vertices[] =
	{
		-1.0f, -1.0f, 0.0f, 	1.0f, 0.0f, 0.0f, 1.0f,		 0.0f,  0.0f,
		-1.0f, -0.9f, 0.0f, 	0.0f, 1.0f, 0.0f, 1.0f,		 0.0f,  1.0f,
		-0.9f, -0.9f, 0.0f, 	0.0f, 0.0f, 1.0f, 1.0f,		 1.0f,  1.0f,
		-0.9f, -1.0f, 0.0f, 	0.8f, 0.3f, 1.0f, 1.0f,		 1.0f,  0.0f
	};

Vertices that doesn’t work

	float vertices[] =
	{
		-1.0f, -1.0f, 0.0f, 	1.0f, 0.0f, 0.0f, 1.0f,		 0.0f,  0.0f,
		-1.0f, -1.0f, 0.0f, 	0.0f, 1.0f, 0.0f, 1.0f,		 0.0f,  1.0f,
		-1.0f, -1.0f, 0.0f, 	0.0f, 0.0f, 1.0f, 1.0f,		 1.0f,  1.0f,
		-1.0f, -1.0f, 0.0f, 	0.8f, 0.3f, 1.0f, 1.0f,		 1.0f,  0.0f
	};