Скачиваний:
29
Добавлен:
02.05.2014
Размер:
2.79 Кб
Скачать
#if !defined(AFX_OPENGL_H__732F7144_0FFE_11D1_AAFE_000000000000__INCLUDED_)
#define AFX_OPENGL_H__732F7144_0FFE_11D1_AAFE_000000000000__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// OpenGL.h : заголовочный файл
//

/////////////////////////////////////////////////////////////////////////////
// COpenGL - абстрактный класс трехмерной графики

#ifndef __CGL_H__
#define __CGL_H__

class COpenGL {
public:
	// Конструктор
	COpenGL();

	// Деструктор
	virtual ~COpenGL();

	// Создание
 	BOOL Create(CWnd* pWnd, 
 				      int iPixelType = PFD_TYPE_RGBA,
 				      DWORD dwFlags  = PFD_DOUBLEBUFFER   |  // Двойная буферизация
                  					   PFD_SUPPORT_OPENGL |  // Использование OpenGL
	                  					 PFD_DRAW_TO_WINDOW ); // Формат пикселей для окна

 	void Destroy();
	BOOL Init();
	BOOL Resize(int cx, int cy);
	BOOL Render();

	// Атрибуты
	
	// Операции
 	void MakeCurrent();

protected:
	// Перегруженные функции
	virtual BOOL OnCreate(CWnd* pWnd, PIXELFORMATDESCRIPTOR* pfd) 
					{return FALSE;}

	virtual BOOL OnResize(int cx, int cy) = 0;
	virtual BOOL OnInit() = 0;
	virtual BOOL OnRender() = 0;

private:
	// Реализация функций

public:
  // Реализация данных
	HGLRC m_hrc; // Контекст воспроизведения OpenGL
	CDC*  m_pdc;  // Контекст устройства

	BOOL m_bDoubleBuffer; // Для контроля вызова SwapBuffers
};
#endif

/////////////////////////////////////////////////////////////////////////////
// COpenGLView - абстрактный класс представления

class COpenGLView : public CView
{
protected:
	COpenGLView();      // защищенный конструктор
	//DECLARE_DYNCREATE(COpenGLView)

// Атрибуты
public:

protected:
	virtual COpenGL* GetOpenGL() = 0 ;
	COpenGL* m_pGL ;

// Операции
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(COpenGLView)
	public:
	  virtual void OnInitialUpdate();
	  virtual void OnDraw(CDC* pDC);      // overridden to draw this view
  protected:
	  virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	//}}AFX_VIRTUAL

// Реализация
public:
	virtual ~COpenGLView();

	// Generated message map functions
protected:
	//{{AFX_MSG(COpenGLView)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_OPENGL_H__732F7144_0FFE_11D1_AAFE_000000000000__INCLUDED_)
Соседние файлы в папке PixFrmtCheck