#pragma once
#include "global.h"
#include "MyStructDef.h"
class CAniEditorDraw : public CDialog
{
	DECLARE_DYNAMIC(CAniEditorDraw)
	DECLARE_MESSAGE_MAP()
public:
	CAniEditorDraw(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CAniEditorDraw();
	// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_CPIDEDITOR_DRAW };
#endif
	void* pParentEditor = nullptr;
	bool showBk = true;
	bool showLine = true;
	bool showEntity = true;
	bool isDark = true;
	void Draw();
	void Load(CString filename);//载入贴图png文件
	void ResetContext();
	void ViewToCenter();
	MyView* GetMyView();
protected:
	void DoDataExchange(CDataExchange* pDX) override;
	BOOL OnInitDialog() override;
public:
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnPaint();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
private:
	//渲染器
	MyDX11Renderer pRenderer;
	MyView view;
	MyTextureAndSRV tas;
	bool onceSetViewCenter = true;
	bool drag = false;
	CPoint moveStartPosL;
	std::vector<MyAniFrame> dragFrameList;
	void DrawEntityRect();
	void DrawFrame();
};

