I thought the demonstrated syntax was C, I wonder how you get classes in there Lumooja/Roland.
Besides, the "object.Load" approach is really bad, as Josh demonstrated.
Also, I also want to precise I would use pointers and not objects, but Josh beat me to that too.
Lastly, I don't know why you fear constructors, Lumooja. Setting the graphics properties after its creation implies that it exists but is empty, which is strange in my opinion.
Here's my ideal code syntax for C++, not C (I feel Josh's one is perfect for C).
Graphics* graphics;
World* world;
Mesh* box;
Camera* camera;
graphics = new Graphics(OpenGLGraphicsDriver());
graphics->Create(1024, 768, 4);
world = new World();
box = new Box(1, 1, 1); // Box : Mesh
box->GetMaterial()->SetShader(new Shader("Shaders/minimal.shader"));
box->GetMaterial()->SetColor(new Color(255, 0, 0, 255));
// Basically Color is a Vector4 represented as bytes
camera = new Camera();
camera->SetClearColor(new Color(0, 255, 0, 255));
box->SetPosition(0, 0, -2, false);
float yaw = 0.0f;
while (!window->IsClosed())
{
yaw++;
box->SetRotation(yaw, 0, 0, false);
camera->Render();
window->Flip();
}