ShaderEditorDlg.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. #pragma once
  2. #include "....subpicISubPic.h"
  3. #include "LineNumberEdit.h"
  4. #include "ShaderAutoCompleteDlg.h"
  5. // Q174667
  6. class CShaderLabelComboBox : public CComboBox
  7. {
  8. public:
  9.     CEdit m_edit;
  10. DECLARE_MESSAGE_MAP()
  11. afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
  12. afx_msg void OnDestroy();
  13. };
  14. class CShaderEdit : public CLineNumberEdit
  15. {
  16. int m_nEndChar;
  17. UINT m_nIDEvent;
  18. public:
  19. CShaderEdit();
  20. ~CShaderEdit();
  21. CShaderAutoCompleteDlg m_acdlg;
  22. DECLARE_MESSAGE_MAP()
  23. afx_msg void OnUpdate();
  24. afx_msg void OnKillFocus(CWnd* pNewWnd);
  25. afx_msg void OnTimer(UINT nIDEvent);
  26. virtual BOOL PreTranslateMessage(MSG* pMsg);
  27. };
  28. // CShaderEditorDlg dialog
  29. class CPixelShaderCompiler;
  30. class CShaderEditorDlg : public CResizableDialog
  31. {
  32. private:
  33. CString m_label;
  34. CComPtr<ISubPicAllocatorPresenter> m_pCAP;
  35. struct shader_t {CString target, srcdata;};
  36. CMap<CString, LPCTSTR, shader_t, shader_t&> m_shaders;
  37. UINT m_nIDEventShader;
  38. bool m_fSplitterGrabbed;
  39. bool HitTestSplitter(CPoint p);
  40. CPixelShaderCompiler* m_pPSC;
  41. public:
  42. CShaderEditorDlg(CString label, ISubPicAllocatorPresenter* pCAP, CWnd* pParent = NULL);   // standard constructor
  43. virtual ~CShaderEditorDlg();
  44. // Dialog Data
  45. enum { IDD = IDD_SHADEREDITORDIALOG };
  46. CShaderLabelComboBox m_labels;
  47. CComboBox m_targets;
  48. CShaderEdit m_srcdata;
  49. CEdit m_output;
  50. protected:
  51. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  52. virtual BOOL OnInitDialog();
  53. virtual BOOL PreTranslateMessage(MSG* pMsg);
  54. DECLARE_MESSAGE_MAP()
  55. public:
  56. afx_msg void OnCbnSelchangeCombo1();
  57. afx_msg void OnBnClickedButton1();
  58. afx_msg void OnBnClickedButton2();
  59. afx_msg void OnTimer(UINT nIDEvent);
  60. afx_msg void OnClose();
  61. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  62. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  63. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  64. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  65. afx_msg void OnKillFocus(CWnd* pNewWnd);
  66. };