virtual bool BeginFrame();
BeginFrame begins rendering frame, which is a caching unit. BeginFrame/EndFrame pair must always be called around BeginScene/EndScene.
BeginFrame notifies renderer about the beginning of a game frame. When calling this function, users must also call EndFrame at the end of the game frame.
Returns true if the frame is rendered successfully and false otherwise.