Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №2 / Lab2 / OGLSHVW
.CPP// oglshvw.cpp : implementation of the COglshapeView class
//
#include "stdafx.h"
#include "oglshape.h"
#include "oglshdoc.h"
#include "oglshvw.h"
#include "ScissorSqr.h"
#include "AlphaDlg.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COglshapeView
IMPLEMENT_DYNCREATE(COglshapeView, CView)
BEGIN_MESSAGE_MAP(COglshapeView, CView)
//{{AFX_MSG_MAP(COglshapeView)
ON_WM_CREATE()
ON_WM_DESTROY()
ON_COMMAND(ID_DRAW_LINELOOP, OnDrawLineloop)
ON_UPDATE_COMMAND_UI(ID_DRAW_LINELOOP, OnUpdateDrawLineloop)
ON_COMMAND(ID_DRAW_LINES, OnDrawLines)
ON_UPDATE_COMMAND_UI(ID_DRAW_LINES, OnUpdateDrawLines)
ON_COMMAND(ID_DRAW_LINESTRIP, OnDrawLinestrip)
ON_UPDATE_COMMAND_UI(ID_DRAW_LINESTRIP, OnUpdateDrawLinestrip)
ON_COMMAND(ID_DRAW_NONCONVEX, OnDrawNonconvex)
ON_UPDATE_COMMAND_UI(ID_DRAW_NONCONVEX, OnUpdateDrawNonconvex)
ON_COMMAND(ID_DRAW_POINTS, OnDrawPoints)
ON_UPDATE_COMMAND_UI(ID_DRAW_POINTS, OnUpdateDrawPoints)
ON_COMMAND(ID_DRAW_POLYGONS, OnDrawPolygons)
ON_UPDATE_COMMAND_UI(ID_DRAW_POLYGONS, OnUpdateDrawPolygons)
ON_COMMAND(ID_DRAW_QUADRILATERALS, OnDrawQuadrilaterals)
ON_UPDATE_COMMAND_UI(ID_DRAW_QUADRILATERALS, OnUpdateDrawQuadrilaterals)
ON_COMMAND(ID_DRAW_QUADSTRIP, OnDrawQuadstrip)
ON_UPDATE_COMMAND_UI(ID_DRAW_QUADSTRIP, OnUpdateDrawQuadstrip)
ON_COMMAND(ID_DRAW_TRIANGLEFAN, OnDrawTrianglefan)
ON_UPDATE_COMMAND_UI(ID_DRAW_TRIANGLEFAN, OnUpdateDrawTrianglefan)
ON_COMMAND(ID_DRAW_TRIANGLES, OnDrawTriangles)
ON_UPDATE_COMMAND_UI(ID_DRAW_TRIANGLES, OnUpdateDrawTriangles)
ON_COMMAND(ID_DRAW_TRIANGLESTRIP, OnDrawTrianglestrip)
ON_UPDATE_COMMAND_UI(ID_DRAW_TRIANGLESTRIP, OnUpdateDrawTrianglestrip)
ON_COMMAND(ID_TEST_SCISSOR_BEGIN, OnTestScissorBegin)
ON_UPDATE_COMMAND_UI(ID_TEST_SCISSOR_BEGIN, OnUpdateTestScissorBegin)
ON_COMMAND(ID_TEST_SCISSOR_CREATE, OnTestScissorCreate)
ON_COMMAND(ID_TEST_SCISSOR_END, OnTestScissorEnd)
ON_UPDATE_COMMAND_UI(ID_TEST_SCISSOR_END, OnUpdateTestScissorEnd)
ON_COMMAND(ID_TEST_ALPHA_GLNEVER, OnTestAlphaGlnever)
ON_UPDATE_COMMAND_UI(ID_TEST_ALPHA_GLNEVER, OnUpdateTestAlphaGlnever)
ON_COMMAND(ID_TEST_ALPHA_GLLESS, OnTestAlphaGlless)
ON_UPDATE_COMMAND_UI(ID_TEST_ALPHA_GLLESS, OnUpdateTestAlphaGlless)
ON_COMMAND(ID_TEST_ALPHA_GLEQUAL, OnTestAlphaGlequal)
ON_UPDATE_COMMAND_UI(ID_TEST_ALPHA_GLEQUAL, OnUpdateTestAlphaGlequal)
ON_COMMAND(ID_TEST_ALPHA_GLLEQUAL, OnTestAlphaGllequal)
ON_UPDATE_COMMAND_UI(ID_TEST_ALPHA_GLLEQUAL, OnUpdateTestAlphaGllequal)
ON_COMMAND(ID_TEST_ALPHA_GLGREATER, OnTestAlphaGlgreater)
ON_UPDATE_COMMAND_UI(ID_TEST_ALPHA_GLGREATER, OnUpdateTestAlphaGlgreater)
ON_COMMAND(ID_TEST_ALPHA_GLNOTEQUAL, OnTestAlphaGlnotequal)
ON_COMMAND(ID_TEST_ALPHA_GLGEQUAL, OnTestAlphaGlgequal)
ON_UPDATE_COMMAND_UI(ID_TEST_ALPHA_GLGEQUAL, OnUpdateTestAlphaGlgequal)
ON_COMMAND(ID_TEST_ALPHA_GLALWAYS, OnTestAlphaGlalways)
ON_UPDATE_COMMAND_UI(ID_TEST_ALPHA_GLALWAYS, OnUpdateTestAlphaGlalways)
ON_COMMAND(ID_TEST_ALPHA_START, OnTestAlphaStart)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLZERO, OnTestBlendSfactorGlzero)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLZERO, OnUpdateTestBlendSfactorGlzero)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLSRCALPHASATURATE, OnTestBlendSfactorGlsrcalphasaturate)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLSRCALPHASATURATE, OnUpdateTestBlendSfactorGlsrcalphasaturate)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLSRCALPHA, OnTestBlendSfactorGlsrcalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLSRCALPHA, OnUpdateTestBlendSfactorGlsrcalpha)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLONEMINUSSRCALPHA, OnTestBlendSfactorGloneminussrcalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLONEMINUSSRCALPHA, OnUpdateTestBlendSfactorGloneminussrcalpha)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLONEMINUSDSTCOLOR, OnTestBlendSfactorGloneminusdstcolor)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLONEMINUSDSTCOLOR, OnUpdateTestBlendSfactorGloneminusdstcolor)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLONEMINUSDSTALPHA, OnTestBlendSfactorGloneminusdstalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLONEMINUSDSTALPHA, OnUpdateTestBlendSfactorGloneminusdstalpha)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLONE, OnTestBlendSfactorGlone)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLONE, OnUpdateTestBlendSfactorGlone)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLDSTCOLOR, OnTestBlendSfactorGldstcolor)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLDSTCOLOR, OnUpdateTestBlendSfactorGldstcolor)
ON_COMMAND(ID_TEST_BLEND_SFACTOR_GLDSTALPHA, OnTestBlendSfactorGldstalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_SFACTOR_GLDSTALPHA, OnUpdateTestBlendSfactorGldstalpha)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLZERO, OnTestBlendDfactorGlzero)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLZERO, OnUpdateTestBlendDfactorGlzero)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLSRCCOLOR, OnTestBlendDfactorGlsrccolor)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLSRCCOLOR, OnUpdateTestBlendDfactorGlsrccolor)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLSRCALPHA, OnTestBlendDfactorGlsrcalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLSRCALPHA, OnUpdateTestBlendDfactorGlsrcalpha)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLONEMINUSSRCCOLOR, OnTestBlendDfactorGloneminussrccolor)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLONEMINUSSRCCOLOR, OnUpdateTestBlendDfactorGloneminussrccolor)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLONEMINUSSRCALPHA, OnTestBlendDfactorGloneminussrcalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLONEMINUSSRCALPHA, OnUpdateTestBlendDfactorGloneminussrcalpha)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLONEMINUSDSTALPHA, OnTestBlendDfactorGloneminusdstalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLONEMINUSDSTALPHA, OnUpdateTestBlendDfactorGloneminusdstalpha)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLONE, OnTestBlendDfactorGlone)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLONE, OnUpdateTestBlendDfactorGlone)
ON_COMMAND(ID_TEST_BLEND_DFACTOR_GLDSTALPHA, OnTestBlendDfactorGldstalpha)
ON_UPDATE_COMMAND_UI(ID_TEST_BLEND_DFACTOR_GLDSTALPHA, OnUpdateTestBlendDfactorGldstalpha)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COglshapeView construction/destruction
COglshapeView::COglshapeView()
{
// TODO: add construction code here
m_SqrS = NULL;
m_Scissored = false;
m_Alpha_func = GL_ALWAYS;
m_Alpha_ref = 0.0f;
m_BlendSFactor = GL_ZERO;
m_BlendDFactor = GL_ZERO;
// m_Alpha_blend = 0.0f;
}
COglshapeView::~COglshapeView()
{
if (m_SqrS != NULL)
delete m_SqrS;
}
/////////////////////////////////////////////////////////////////////////////
// COglshapeView drawing
void COglshapeView::OnDraw(CDC* pDC)
{
COglshapeDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
wglMakeCurrent(pDC->m_hDC, m_hRC);
DrawWithOpenGL();
wglMakeCurrent(pDC->m_hDC, NULL);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
/////////////////////////////////////////////////////////////////////////////
// COglshapeView diagnostics
#ifdef _DEBUG
void COglshapeView::AssertValid() const
{
CView::AssertValid();
}
void COglshapeView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
COglshapeDoc* COglshapeView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COglshapeDoc)));
return (COglshapeDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// COglshapeView message handlers
int COglshapeView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR), // Structure size.
1, // Structure version number.
PFD_DRAW_TO_WINDOW | // Property flags.
PFD_SUPPORT_OPENGL,
PFD_TYPE_RGBA,
24, // 24-bit color.
0, 0, 0, 0, 0, 0, // Not concerned with these.
0, 0, 0, 0, 0, 0, 0, // No alpha or accum buffer.
32, // 32-bit depth buffer.
0, 0, // No stencil or aux buffer.
PFD_MAIN_PLANE, // Main layer type.
0, // Reserved.
0, 0, 0 // Unsupported.
};
CClientDC clientDC(this);
int pixelFormat =
ChoosePixelFormat(clientDC.m_hDC, &pfd);
BOOL success =
SetPixelFormat(clientDC.m_hDC, pixelFormat, &pfd);
m_hRC = wglCreateContext(clientDC.m_hDC);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
return 0;
}
void COglshapeView::OnDestroy()
{
CView::OnDestroy();
// TODO: Add your message handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
wglDeleteContext(m_hRC);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
BOOL COglshapeView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
cs.style |= WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
return CView::PreCreateWindow(cs);
}
void COglshapeView::OnDrawLineloop()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = LineLoop;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawLineloop(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == LineLoop)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawLines()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = Lines;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawLines(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == Lines)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawLinestrip()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = LineStrip;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawLinestrip(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == LineStrip)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawNonconvex()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = Nonconvex;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawNonconvex(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == Nonconvex)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawPoints()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = Points;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawPoints(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == Points)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawPolygons()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = Polygons;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawPolygons(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == Polygons)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawQuadrilaterals()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = Quads;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawQuadrilaterals(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == Quads)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawQuadstrip()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = QuadStrip;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawQuadstrip(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == QuadStrip)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawTrianglefan()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = TriangleFan;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawTrianglefan(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == TriangleFan)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawTriangles()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = Triangles;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawTriangles(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == Triangles)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnDrawTrianglestrip()
{
// TODO: Add your command handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
m_shape = TriangleStrip;
Invalidate();
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
void COglshapeView::OnUpdateDrawTrianglestrip(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
if (m_shape == TriangleStrip)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
///////////////////////////////////////
///////////////////////////////////////
// END CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
}
///////////////////////////////////////
///////////////////////////////////////
// START CUSTOM CODE
///////////////////////////////////////
///////////////////////////////////////
void COglshapeView::DrawWithOpenGL()
{
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glPolygonMode(GL_FRONT,GL_FILL);
glPolygonMode(GL_BACK,GL_FILL);
if ( m_Scissored && (m_SqrS != NULL))
{
glEnable(GL_SCISSOR_TEST);
glScissor(m_SqrS->X,m_SqrS->Y,m_SqrS->Height,m_SqrS->Lenght);
}
glEnable(GL_ALPHA_TEST);
glAlphaFunc(m_Alpha_func, m_Alpha_ref);
glEnable(GL_BLEND);
glBlendFunc(m_BlendSFactor,m_BlendDFactor);
switch(m_shape)
{
case Points : DrawPoints(); break;
case Lines : DrawLines(); break;
case LineStrip : DrawLineStrip(); break;
case LineLoop : DrawLineLoop(); break;
case Polygons : DrawPolygons(); break;
case Triangles : DrawTriangles(); break;
case TriangleStrip : DrawTriangleStrip(); break;
case TriangleFan : DrawTriangleFan(); break;
case Quads : DrawQuads(); break;
case QuadStrip : DrawQuadStrip(); break;
}
glDisable(GL_SCISSOR_TEST);
glDisable(GL_ALPHA_TEST);
glDisable(GL_BLEND);
glFlush();
}
void COglshapeView::DrawPoints()
{
GLfloat ps[2];
glGetFloatv(GL_POINT_SIZE_RANGE, ps);
glPointSize(ps[1]);
glBegin(GL_POINTS);
glColor4f(0.5f, 0.2f, 0.1f,0.0f);
glVertex2f(0.0f, 0.0f);
glColor4f(0.6f, 0.7f, 0.8f,0.0f);
glVertex2f(0.75f, 0.75f);
glColor4f(0.2f, 0.3f, 0.6f,0.0f);
glVertex2f(-0.75f, -0.75f);
glColor4f(0.6f, 0.7f, 0.2f,0.0f);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.4f, 0.3f, 0.5f,0.0f);
glVertex2f(0.75f, -0.75f);
glEnd();
}
void COglshapeView::DrawLines()
{
GLfloat lw[2];
glGetFloatv(GL_LINE_WIDTH_RANGE, lw);
if (lw[1] >= 4.0f)
glLineWidth(4.0f);
else
glLineWidth(lw[1]);
glBegin(GL_LINES);
glColor4f(0.7f, 0.6f, 0.3f,0.0f);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.1f, 0.7f, 0.9f,0.0f);
glVertex2f(0.75f, 0.75f);
glColor4f(0.4f, 0.2f, 0.8f,0.0f);
glVertex2f(-0.75f, 0.25f);
glColor4f(0.1f, 0.9f, 0.6f,0.0f);
glVertex2f(0.75f, 0.25f);
glEnd();
glLineStipple(1, 0x4444);
glEnable(GL_LINE_STIPPLE);
glBegin(GL_LINES);
glColor4f(0.6f, 0.3f, 0.1f,0.0f);
glVertex2f(-0.75f, -0.25f);
glColor4f(0.3f, 0.4f, 0.6f,0.0f);
glVertex2f(0.75f, -0.25f);
glColor4f(0.5f, 0.7f, 0.4f,0.0f);
glVertex2f(-0.75f, -0.75f);
glColor4f(0.8f, 0.1f, 0.2f,0.0f);
glVertex2f(0.75f, -0.75f);
glEnd();
glDisable(GL_LINE_STIPPLE);
}
void COglshapeView::DrawLineStrip()
{
/*glBegin(GL_LINE_STRIP);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.1f, 0.4f, 0.8f,0.0f);
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, -0.5f);
glVertex2f(0.75f, 0.75f);
glEnd(); */
GLfloat lw[2];
glGetFloatv(GL_LINE_WIDTH_RANGE, lw);
if (lw[1] >= 4.0f)
glLineWidth(4.0f);
else
glLineWidth(lw[1]);
glBegin(GL_LINE_STRIP);
glColor4f(0.4f, 0.2f, 0.5f,0.0f);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.5f, 0.2f, 0.6f,0.0f);
glVertex2f(0.75f, 0.75f);
glColor4f(0.3f, 0.6f, 0.9f,0.0f);
glVertex2f(-0.75f, 0.25f);
glColor4f(0.1f, 0.2f, 0.3f,0.0f);
glVertex2f(0.75f, 0.25f);
glColor4f(0.1f, 0.7f, 0.3f,0.0f);
glVertex2f(-0.75f, -0.25f);
glColor4f(0.8f, 0.2f, 0.3f,0.0f);
glVertex2f(0.75f, -0.25f);
glColor4f(0.1f, 0.2f, 0.9f,0.0f);
glVertex2f(-0.75f, -0.75f);
glColor4f(0.5f, 0.4f, 0.3f,0.0f);
glVertex2f(0.75f, -0.75f);
glEnd();
}
void COglshapeView::DrawLineLoop()
{
/*glBegin(GL_LINE_LOOP);
glColor4f(0.1f, 0.4f, 0.5f,0.0f);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.2f, 0.3f, 0.5f,0.0f);
glVertex2f(-0.5f, -0.5f);
glColor4f(0.6f, 0.4f, 0.7f,0.0f);
glVertex2f(0.0f, 0.0f);
glColor4f(0.8f, 0.2f, 0.7f,0.0f);
glVertex2f(0.5f, -0.5f);
glColor4f(0.9f, 0.3f, 0.9f,0.0f);
glVertex2f(0.75f, 0.75f);
glColor4f(0.2f, 0.6f, 0.1f,0.0f);
glVertex2f(0.0f, 0.1f);
glEnd();*/
GLfloat lw[2];
glGetFloatv(GL_LINE_WIDTH_RANGE, lw);
if (lw[1] >= 4.0f)
glLineWidth(4.0f);
else
glLineWidth(lw[1]);
glBegin(GL_LINE_LOOP);
glColor4f(0.4f, 0.2f, 0.5f,0.0f);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.5f, 0.2f, 0.6f,0.0f);
glVertex2f(0.75f, 0.75f);
glColor4f(0.3f, 0.6f, 0.9f,0.0f);
glVertex2f(-0.75f, 0.25f);
glColor4f(0.1f, 0.2f, 0.3f,0.0f);
glVertex2f(0.75f, 0.25f);
glColor4f(0.1f, 0.7f, 0.3f,0.0f);
glVertex2f(-0.75f, -0.25f);
glColor4f(0.8f, 0.2f, 0.3f,0.0f);
glVertex2f(0.75f, -0.25f);
glColor4f(0.1f, 0.2f, 0.9f,0.0f);
glVertex2f(-0.75f, -0.75f);
glColor4f(0.5f, 0.4f, 0.3f,0.0f);
glVertex2f(0.75f, -0.75f);
glEnd();
}
void COglshapeView::DrawPolygons()
{
glBegin(GL_POLYGON);
glColor4f(0.7f, 0.5f, 0.5f,0.2f);
glVertex2f(-0.2f, -0.2f);
glColor4f(0.9f, 0.4f, 0.1f,0.2f);
glVertex2f(-0.75f, -0.75f);
glColor4f(0.7f, 0.8f, 0.6f,0.2f);
glVertex2f(0.75f, -0.75f);
glColor4f(0.3f, 0.4f, 0.5f,0.2f);
glVertex2f(0.2f, -0.2f);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0.1f, 0.5f, 0.7f,0.7f);
glVertex2f(-0.2f, 0.2f);
glColor4f(0.4f, 0.5f, 0.2f,0.7f);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.5f, 0.9f, 0.8f,0.7f);
glVertex2f(0.75f, 0.75f);
glColor4f(0.4f, 0.4f, 0.5f,0.7f);
glVertex2f(0.2f, 0.2f);
glEnd();
}
void COglshapeView::DrawTriangles()
{
// glColor4f(0.1f, 0.3f, 0.6f,0.0f);
// glBegin(GL_TRIANGLES);
// glVertex2f(-0.5f, 0.0f);
// glVertex2f(-0.75f, 0.5f);
// glVertex2f(-0.25f, 0.5f);
// glEnd();
// glColor4f(0.5f, 0.5f, 0.6f,0.0f);
// glBegin(GL_TRIANGLES);
// glVertex2f(0.5f, 0.0f);
// glVertex2f(0.75f, 0.5f);
// glVertex2f(0.25f, 0.5f);
// glEnd();
// glColor4f(0.3f, 0.5f, 0.9f,0.5f);
// glBegin(GL_TRIANGLES);
// glVertex2f(0.0f, 0.0f);
// glVertex2f(-0.25f, -0.5f);
// glVertex2f(0.25f, -0.5f);
// glEnd();
GLfloat lw[4];
for (int i=1; i<10; i++)
{
glGetFloatv(GL_CURRENT_COLOR, lw);
glColor4f(lw[0]*0.9f, lw[1]*0.9f, lw[2]*0.9f, lw[3]*0.9f);
glBegin(GL_TRIANGLES);
glVertex2f((float)(-1.0/i), (float)(-1.0/i));
glVertex2f((float)(1.0/i), (float)(-1.0/i));
glVertex2f((float)0.0, (float)(1.0/i));
glEnd();
}
}
void COglshapeView::DrawTriangleStrip()
{
glBegin(GL_TRIANGLE_STRIP);
glColor4f(0.1f, 0.4f, 0.2f,0.0f);
glVertex2f(-1.0f, 0.0f);
glColor4f(0.1f, 0.3f, 0.5f,0.0f);
glVertex2f(0.0f, 0.0f);
glColor4f(0.5f, 0.5f, 0.9f,0.0f);
glVertex2f(-0.5f, 0.75f);
glColor4f(0.8f, 0.6f, 0.1f,0.0f);
glVertex2f(0.5f, 0.75f);
glEnd();
glBegin(GL_TRIANGLE_STRIP);
glColor4f(0.1f, 0.2f, 0.3f,0.0f);
glVertex2f(1.0f, 0.0f);
glColor4f(0.4f, 0.3f, 0.2f,0.0f);
glVertex2f(0.0f, 0.0f);
glColor4f(0.4f, 0.5f, 0.7f,0.0f);
glVertex2f(0.5f, -0.75f);
glColor4f(0.8f, 0.8f, 0.3f,0.0f);
glVertex2f(-0.5f, -0.75f);
glEnd();
}
void COglshapeView::DrawTriangleFan()
{
glBegin(GL_TRIANGLE_FAN);
glColor4f(0.1f, 0.2f, 0.3f,0.0f);
glVertex2f(0.0f, 0.0f);
glColor4f(0.5f, 0.8f, 0.7f,0.0f);
glVertex2f(-1.0f, 0.0f);
glColor4f(0.2f, 0.9f, 0.8f,0.0f);
glVertex2f(-0.5f, 0.75f);
glColor4f(0.9f, 0.8f, 0.8f,0.0f);
glVertex2f(0.0f, 0.25f);
glColor4f(0.5f, 0.4f, 0.2f,0.0f);
glVertex2f(0.5f, 0.75f);
glColor4f(0.1f, 0.1f, 0.7f,0.0f);
glVertex2f(1.0f, 0.0f);
/*glColor4f(0.1f, 0.2f, 0.3f,0.0f);
glVertex2f(0.0f, 0.0f);
glColor4f(0.4f, 0.5f, 0.3f,0.0f);
glVertex2f(-0.5f, -0.75f);
glColor4f(0.5f, 0.8f, 0.7f,0.0f);
glVertex2f(-1.0f, 0.0f);
glColor4f(0.5f, 0.4f, 0.2f,0.0f);
glVertex2f(-0.5f, 0.75f);
glColor4f(0.2f, 0.9f, 0.8f,0.0f);
glVertex2f(0.5f, 0.75f);
glColor4f(0.8f, 0.4f, 0.7f,0.0f);
glVertex2f(1.0f, 0.0f);
glColor4f(0.9f, 0.8f, 0.8f,0.0f);
glVertex2f(0.5f, -0.75f); */
glEnd();
}
void COglshapeView::DrawQuads()
{
/*
glBegin(GL_QUADS);
glColor4f(0.5f, 0.4f, 0.6f,0.0f);
glVertex2f(-0.5f, 0.5f);
glColor4f(0.6f, 0.7f, 0.7f,0.0f);
glVertex2f(-1.5f, 0.5f);
glColor4f(0.2f, 0.6f, 0.7f,0.0f);
glVertex2f(-1.5f, 1.5f);
glColor4f(0.2f, 0.4f, 0.5f,0.0f);
glVertex2f(-0.5f, 1.5f);
glEnd();
glBegin(GL_QUADS);
glColor4f(0.7f, 0.7f, 0.8f,0.0f);
glVertex2f(0.5f, -0.5f);
glColor4f(0.5f, 0.6f, 0.5f,0.0f);
glVertex2f(1.5f, -0.5f);
glColor4f(0.8f, 0.5f, 0.8f,0.0f);
glVertex2f(1.5f, -1.5f);
glColor4f(0.4f, 0.3f, 0.6f,0.0f);
glVertex2f(0.5f, -1.5f);
glEnd(); */
glBegin(GL_QUADS);
glColor4f(0.0f, 0.0f, 1.0f,0.2f);
glVertex2f(-0.25f, 0.75f);
glColor4f(0.0f, 1.0f, 0.0f,0.2f);
glVertex2f(0.25f, 0.75f);
glColor4f(1.0f, 0.0f, 0.0f,0.2f);
glVertex2f(0.25f, -0.75f);
glColor4f(0.7f, 0.7f, 0.8f,0.2f);
glVertex2f(-0.25f, -0.75f);
glColor4f(0.1f, 0.7f, 0.2f,0.7f);
glVertex2f(-0.75f, 0.25f);
glColor4f(0.7f, 0.2f, 0.8f,0.7f);
glVertex2f(0.75f, 0.25f);
glColor4f(0.1f, 0.2f, 0.8f,0.7f);
glVertex2f(0.75f, -0.25f);
glColor4f(0.7f, 0.2f, 0.5f,0.7f);
glVertex2f(-0.75f, -0.25f);
glEnd();
}
void COglshapeView::DrawQuadStrip()
{
glBegin(GL_QUAD_STRIP);
glColor4f(0.3f, 0.6f, 0.6f,0.0f);
glVertex2f(-0.5f, 0.0f);
glColor4f(0.5f, 0.6f, 0.9f,0.0f);
glVertex2f(-0.75f, 0.75f);
glColor4f(0.1f, 0.0f, 0.9f,0.0f);
glVertex2f(-0.25f, 0.25f);
glColor4f(0.1f, 0.3f, 0.5f,0.0f);
glVertex2f(-0.25f, 1.0f);
glColor4f(0.4f, 0.6f, 0.8f,0.0f);
glVertex2f(0.25f, 0.25f);
glColor4f(0.3f, 0.4f, 0.5f,0.0f);
glVertex2f(0.25f, 1.0f);
glColor4f(0.0f, 0.5f, 0.9f,0.0f);
glVertex2f(0.5f, 0.0f);
glColor4f(0.0f, 0.3f, 0.5f,0.0f);
glVertex2f(0.75f, 0.75f);
glEnd();
}
void COglshapeView::OnTestScissorBegin()
{
// TODO: Add your command handler code here
m_Scissored = true;
Invalidate();
}
void COglshapeView::OnUpdateTestScissorBegin(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
//m_Scissored = true;
Invalidate();
}
void COglshapeView::OnTestScissorCreate()
{
// TODO: Add your command handler code here
CScissorDlg dlgScissor;
if (dlgScissor.DoModal() == IDOK)
{
if (m_SqrS != NULL)
delete m_SqrS;
m_SqrS = dlgScissor.GetSqr();
}
}
void COglshapeView::OnTestScissorEnd()
{
// TODO: Add your command handler code here
m_Scissored = false;
Invalidate();
}
void COglshapeView::OnUpdateTestScissorEnd(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Scissored == false)
pCmdUI -> SetCheck(TRUE);
else
pCmdUI -> SetCheck(FALSE);
}
void COglshapeView::OnTestAlphaGlnever()
{
// TODO: Add your command handler code here
m_Alpha_func = GL_NEVER;
Invalidate();
}
void COglshapeView::OnTestAlphaGlless()
{
// TODO: Add your command handler code here
m_Alpha_func = GL_LESS;
Invalidate();
}
void COglshapeView::OnTestAlphaGlequal()
{
// TODO: Add your command handler code here
m_Alpha_func = GL_EQUAL;
Invalidate();
}
void COglshapeView::OnTestAlphaGllequal()
{
// TODO: Add your command handler code here
m_Alpha_func = GL_LEQUAL;
Invalidate();
}
void COglshapeView::OnTestAlphaGlgreater()
{
// TODO: Add your command handler code here
m_Alpha_func = GL_GREATER;
Invalidate();
}
void COglshapeView::OnTestAlphaGlnotequal()
{
// TODO: Add your command handler code here
m_Alpha_func = GL_NOTEQUAL;
Invalidate();
}
void COglshapeView::OnTestAlphaGlgequal()
{
// TODO: Add your command handler code here
m_Alpha_func = GL_GEQUAL;
Invalidate();
}
void COglshapeView::OnTestAlphaGlalways()
{
m_Alpha_func = GL_ALWAYS;
Invalidate();
}
void COglshapeView::OnUpdateTestAlphaGlnever(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_NEVER)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnUpdateTestAlphaGlless(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_LESS)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnUpdateTestAlphaGlequal(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_EQUAL)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnUpdateTestAlphaGllequal(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_LEQUAL)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnUpdateTestAlphaGlgreater(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_GREATER)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnUpdateTestAlphaGlnotequal(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_NOTEQUAL)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnUpdateTestAlphaGlgequal(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_GEQUAL)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnUpdateTestAlphaGlalways(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_Alpha_func == GL_ALWAYS)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestAlphaStart()
{
// TODO: Add your command handler code here
CAlphaDlg dlgAlpha;
if (dlgAlpha.DoModal()==IDOK)
m_Alpha_ref = (float) dlgAlpha.GetAlpha();
}
void COglshapeView::OnTestBlendSfactorGlzero()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_ZERO;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGlzero(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_ZERO)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGlsrcalphasaturate()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_SRC_ALPHA_SATURATE;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGlsrcalphasaturate(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_SRC_ALPHA_SATURATE)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGlsrcalpha()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_SRC_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGlsrcalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_SRC_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGloneminussrcalpha()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_ONE_MINUS_SRC_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGloneminussrcalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_ONE_MINUS_SRC_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGloneminusdstcolor()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_ONE_MINUS_DST_COLOR;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGloneminusdstcolor(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_ONE_MINUS_DST_COLOR)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGloneminusdstalpha()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_ONE_MINUS_DST_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGloneminusdstalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_ONE_MINUS_DST_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGlone()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_ONE;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGlone(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_ONE)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGldstcolor()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_DST_COLOR;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGldstcolor(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_DST_COLOR)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendSfactorGldstalpha()
{
// TODO: Add your command handler code here
m_BlendSFactor = GL_DST_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendSfactorGldstalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendSFactor == GL_DST_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGlzero()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_ZERO;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGlzero(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_ZERO)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGlsrccolor()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_SRC_COLOR;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGlsrccolor(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_SRC_COLOR)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGlsrcalpha()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_SRC_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGlsrcalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_SRC_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGloneminussrccolor()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_ONE_MINUS_SRC_COLOR;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGloneminussrccolor(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_ONE_MINUS_SRC_COLOR)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGloneminussrcalpha()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_ONE_MINUS_SRC_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGloneminussrcalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_ONE_MINUS_SRC_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGloneminusdstalpha()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_ONE_MINUS_DST_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGloneminusdstalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_ONE_MINUS_DST_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGlone()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_ONE;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGlone(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_ONE)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
void COglshapeView::OnTestBlendDfactorGldstalpha()
{
// TODO: Add your command handler code here
m_BlendDFactor = GL_DST_ALPHA;
Invalidate();
}
void COglshapeView::OnUpdateTestBlendDfactorGldstalpha(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_BlendDFactor == GL_DST_ALPHA)
pCmdUI ->SetCheck(TRUE);
else
pCmdUI ->SetCheck(FALSE);
}
Соседние файлы в папке Lab2