Скачиваний:
26
Добавлен:
01.05.2014
Размер:
7.37 Кб
Скачать
// oglshvw.h : interface of the COglshapeView class
//
/////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
	
#include <gl\gl.h>
#include "ScissorSqr.h"
#include "ScissorDlg.h"
#include "AlphaDlg.h"
 

typedef enum Figure 
		{Points, 
		 Lines,
		 LineStrip, 
		 LineLoop, 
		 Polygons, 
		 Nonconvex,
         Triangles, 
		 TriangleStrip, 
		 TriangleFan, 
		 Quads,
		 QuadStrip
} tFigure;



typedef enum Test
{
	Scissor,
	Blend,
	Alpha
} tTest;

///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////

class COglshapeView : public CView
{
protected: // create from serialization only
	COglshapeView();
	DECLARE_DYNCREATE(COglshapeView)

// Attributes
public:
	COglshapeDoc* GetDocument();

///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
	
protected:
    HGLRC m_hRC;
    tFigure m_shape;

	bool m_Scissored;
	tScissorSqr* m_SqrS;
	
	GLenum m_Alpha_func;
	GLclampf m_Alpha_ref;


	GLenum m_BlendSFactor;
	GLenum m_BlendDFactor;
	GLfloat m_Blend_Alpha;

	



///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////

// Operations
public:

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

// Implementation
public:
	virtual ~COglshapeView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

	///////////////////////////////////////
	///////////////////////////////////////
	// START CUSTOM CODE
	///////////////////////////////////////
	///////////////////////////////////////
	
    void DrawWithOpenGL();
    void DrawPoints();
    void DrawLines();
    void DrawLineStrip();
    void DrawLineLoop();
    void DrawPolygons();
    void DrawNonconvex();
    void DrawTriangles();
    void DrawTriangleStrip();
    void DrawTriangleFan();
    void DrawQuads();
    void DrawQuadStrip();

	///////////////////////////////////////
	///////////////////////////////////////
	// END CUSTOM CODE
	///////////////////////////////////////
	///////////////////////////////////////
	
// Generated message map functions
protected:
	//{{AFX_MSG(COglshapeView)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	afx_msg void OnDrawLineloop();
	afx_msg void OnUpdateDrawLineloop(CCmdUI* pCmdUI);
	afx_msg void OnDrawLines();
	afx_msg void OnUpdateDrawLines(CCmdUI* pCmdUI);
	afx_msg void OnDrawLinestrip();
	afx_msg void OnUpdateDrawLinestrip(CCmdUI* pCmdUI);
	afx_msg void OnDrawNonconvex();
	afx_msg void OnUpdateDrawNonconvex(CCmdUI* pCmdUI);
	afx_msg void OnDrawPoints();
	afx_msg void OnUpdateDrawPoints(CCmdUI* pCmdUI);
	afx_msg void OnDrawPolygons();
	afx_msg void OnUpdateDrawPolygons(CCmdUI* pCmdUI);
	afx_msg void OnDrawQuadrilaterals();
	afx_msg void OnUpdateDrawQuadrilaterals(CCmdUI* pCmdUI);
	afx_msg void OnDrawQuadstrip();
	afx_msg void OnUpdateDrawQuadstrip(CCmdUI* pCmdUI);
	afx_msg void OnDrawTrianglefan();
	afx_msg void OnUpdateDrawTrianglefan(CCmdUI* pCmdUI);
	afx_msg void OnDrawTriangles();
	afx_msg void OnUpdateDrawTriangles(CCmdUI* pCmdUI);
	afx_msg void OnDrawTrianglestrip();
	afx_msg void OnUpdateDrawTrianglestrip(CCmdUI* pCmdUI);
	afx_msg void OnTestScissorBegin();
	afx_msg void OnUpdateTestScissorBegin(CCmdUI* pCmdUI);
	afx_msg void OnTestScissorCreate();
	afx_msg void OnUpdateTestScissorCreate(CCmdUI* pCmdUI);
	afx_msg void OnTestScissorEnd();
	afx_msg void OnUpdateTestScissorEnd(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGlnever();
	afx_msg void OnUpdateTestAlphaGlnever(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGlless();
	afx_msg void OnUpdateTestAlphaGlless(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGlequal();
	afx_msg void OnUpdateTestAlphaGlequal(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGllequal();
	afx_msg void OnUpdateTestAlphaGllequal(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGlgreater();
	afx_msg void OnUpdateTestAlphaGlgreater(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGlnotequal();
	afx_msg void OnUpdateTestAlphaGlnotequal(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGlgequal();
	afx_msg void OnUpdateTestAlphaGlgequal(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaGlalways();	
	afx_msg void OnUpdateTestAlphaGlalways(CCmdUI* pCmdUI);
	afx_msg void OnTestAlphaStart();
	afx_msg void OnTestBlendSfactorGlzero();
	afx_msg void OnUpdateTestBlendSfactorGlzero(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGlsrcalphasaturate();
	afx_msg void OnUpdateTestBlendSfactorGlsrcalphasaturate(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGlsrcalpha();
	afx_msg void OnUpdateTestBlendSfactorGlsrcalpha(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGloneminussrcalpha();
	afx_msg void OnUpdateTestBlendSfactorGloneminussrcalpha(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGloneminusdstcolor();
	afx_msg void OnUpdateTestBlendSfactorGloneminusdstcolor(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGloneminusdstalpha();
	afx_msg void OnUpdateTestBlendSfactorGloneminusdstalpha(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGlone();
	afx_msg void OnUpdateTestBlendSfactorGlone(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGldstcolor();
	afx_msg void OnUpdateTestBlendSfactorGldstcolor(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendSfactorGldstalpha();
	afx_msg void OnUpdateTestBlendSfactorGldstalpha(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGlzero();
	afx_msg void OnUpdateTestBlendDfactorGlzero(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGlsrccolor();
	afx_msg void OnUpdateTestBlendDfactorGlsrccolor(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGlsrcalpha();
	afx_msg void OnUpdateTestBlendDfactorGlsrcalpha(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGloneminussrccolor();
	afx_msg void OnUpdateTestBlendDfactorGloneminussrccolor(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGloneminussrcalpha();
	afx_msg void OnUpdateTestBlendDfactorGloneminussrcalpha(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGloneminusdstalpha();
	afx_msg void OnUpdateTestBlendDfactorGloneminusdstalpha(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGlone();
	afx_msg void OnUpdateTestBlendDfactorGlone(CCmdUI* pCmdUI);
	afx_msg void OnTestBlendDfactorGldstalpha();
	afx_msg void OnUpdateTestBlendDfactorGldstalpha(CCmdUI* pCmdUI);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in oglshvw.cpp
inline COglshapeDoc* COglshapeView::GetDocument()
   { return (COglshapeDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////
Соседние файлы в папке Lab2