#pragma once

#include <memory>
#include "IWMR_Wrapper.h"

class WMRimpl;

class WMR_Wrapper : public IWMR_Wrapper
{
public:

	WMR_Wrapper() {}
	~WMR_Wrapper();
	WMR_Wrapper(const WMR_Wrapper& other) = delete;

	bool init(HWND hwnd) override;
	void getTextures(unsigned int& left, unsigned int& right)const override;
	void getPerEyeResolution(uint32_t& width, uint32_t& height) const override;

	//Matrices stored row-wise
	void frameStartGetTracking(float(&viewL)[16], float(&viewR)[16], float(&projL)[16], float(&projR)[16]) override;

	void submitFrameToHmd() override;
	void setNearFarDistance(float nearZ, float farZ) override;

private:
	WMRimpl* _impl = nullptr;
};