Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №42 / Dlg
.cpp// Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "GLlab.h"
#include "Dlg.h"
#include <gl\gl.h>
#include <gl\glu.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Dlg dialog
Dlg::Dlg(CWnd* pParent /*=NULL*/)
: CDialog(Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(Dlg)
m_ScissorX = 0;
m_ScissorY = 230;
m_ScissorHight = 300;
m_ScissorWidth = 300;
m_AlphaRef = 0.4f;
AlphaFunc=GL_GREATER;
BlendSfactor=GL_SRC_ALPHA;
BlendDfactor=GL_ONE_MINUS_SRC_ALPHA;
//}}AFX_DATA_INIT
}
void Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Dlg)
DDX_Control(pDX, IDC_LIST3, m_List3);
DDX_Control(pDX, IDC_LIST2, m_List2);
DDX_Control(pDX, IDC_LIST1, m_List1);
DDX_Text(pDX, IDC_EDIT1, m_ScissorX);
DDX_Text(pDX, IDC_EDIT2, m_ScissorY);
DDX_Text(pDX, IDC_EDIT3, m_ScissorHight);
DDX_Text(pDX, IDC_EDIT4, m_ScissorWidth);
DDX_Text(pDX, IDC_EDIT5, m_AlphaRef);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Dlg, CDialog)
//{{AFX_MSG_MAP(Dlg)
ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)
ON_LBN_SELCHANGE(IDC_LIST2, OnSelchangeList2)
ON_LBN_SELCHANGE(IDC_LIST3, OnSelchangeList3)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Dlg message handlers
void Dlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CDialog::OnOK();
}
BOOL Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_List1.AddString("01 GL_GREATER");
m_List1.AddString("02 GL_NEVER");
m_List1.AddString("03 GL_LESS");
m_List1.AddString("04 GL_EQUAL");
m_List1.AddString("05 GL_LEQUAL");
m_List1.AddString("06 GL_NOTEQUAL");
m_List1.AddString("07 GL_GEQUAL");
m_List1.AddString("08 GL_ALWAYS");
m_List1.SetCurSel(0);
m_List2.AddString("01 GL_ZERO");
m_List2.AddString("02 GL_ONE");
m_List2.AddString("03 GL_DST_COLOR");
m_List2.AddString("04 GL_ONE_MINUS_DST_COLOR");
m_List2.AddString("05 GL_SRC_ALPHA");
m_List2.AddString("06 GL_ONE_MINUS_SRC_ALPHA");
m_List2.AddString("07 GL_DST_ALPHA");
m_List2.AddString("08 GL_ONE_MINUS_DST_ALPHA");
m_List2.AddString("09 GL_SRC_ALPHA_SATURATE");
m_List2.SetCurSel(4);
m_List3.AddString("01 GL_ZERO");
m_List3.AddString("02 GL_ONE");
m_List3.AddString("03 GL_SRC_COLOR");
m_List3.AddString("04 GL_ONE_MINUS_SRC_COLOR");
m_List3.AddString("05 GL_SRC_ALPHA");
m_List3.AddString("06 GL_ONE_MINUS_SRC_ALPHA");
m_List3.AddString("07 GL_DST_ALPHA");
m_List3.AddString("08 GL_ONE_MINUS_DST_ALPHA");
m_List3.SetCurSel(5);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void Dlg::OnSelchangeList1()
{ m_List1.GetText(m_List1.GetCurSel(),list1_text);
if (list1_text=="01 GL_GREATER"){AlphaFunc=GL_GREATER;}
if (list1_text=="02 GL_NEVER"){AlphaFunc=GL_NEVER;}
if (list1_text=="03 GL_LESS"){AlphaFunc=GL_LESS;}
if (list1_text=="04 GL_EQUAL"){AlphaFunc=GL_EQUAL;}
if (list1_text=="05 GL_LEQUAL"){AlphaFunc=GL_LEQUAL;}
if (list1_text=="06 GL_NOTEQUAL"){AlphaFunc=GL_NOTEQUAL;}
if (list1_text=="07 GL_GEQUAL"){AlphaFunc=GL_GEQUAL;}
if (list1_text=="08 GL_ALWAYS"){AlphaFunc=GL_ALWAYS;}
UpdateData(false);
}
void Dlg::OnSelchangeList2()
{ m_List2.GetText(m_List2.GetCurSel(),list2_text);
if (list2_text=="01 GL_ZERO"){BlendSfactor=GL_ZERO;}
if (list2_text=="02 GL_ONE"){BlendSfactor=GL_ONE;}
if (list2_text=="03 GL_DST_COLOR"){BlendSfactor=GL_DST_COLOR;}
if (list2_text=="04 GL_ONE_MINUS_DST_COLOR"){BlendSfactor=GL_ONE_MINUS_DST_COLOR;}
if (list2_text=="05 GL_SRC_ALPHA"){BlendSfactor=GL_SRC_ALPHA;}
if (list2_text=="06 GL_ONE_MINUS_SRC_ALPHA"){BlendSfactor=GL_ONE_MINUS_SRC_ALPHA;}
if (list2_text=="07 GL_DST_ALPHA"){BlendSfactor=GL_DST_ALPHA;}
if (list2_text=="08 GL_ONE_MINUS_DST_ALPHA"){BlendSfactor=GL_ONE_MINUS_DST_ALPHA;}
if (list2_text=="09 GL_SRC_ALPHA_SATURATE"){BlendSfactor=GL_SRC_ALPHA_SATURATE;}
UpdateData(false);
}
void Dlg::OnSelchangeList3()
{ m_List3.GetText(m_List3.GetCurSel(),list3_text);
if (list3_text=="01 GL_ZERO"){BlendDfactor=GL_ZERO;}
if (list3_text=="02 GL_ONE"){BlendDfactor=GL_ONE;}
if (list3_text=="03 GL_SRC_COLOR"){BlendDfactor=GL_SRC_COLOR;}
if (list3_text=="04 GL_ONE_MINUS_SRC_COLOR"){BlendDfactor=GL_ONE_MINUS_SRC_COLOR;}
if (list3_text=="05 GL_SRC_ALPHA"){BlendDfactor=GL_SRC_ALPHA;}
if (list3_text=="06 GL_ONE_MINUS_SRC_ALPHA"){BlendDfactor=GL_ONE_MINUS_SRC_ALPHA;}
if (list3_text=="07 GL_DST_ALPHA"){BlendDfactor=GL_DST_ALPHA;}
if (list3_text=="08 GL_ONE_MINUS_DST_ALPHA"){BlendDfactor=GL_ONE_MINUS_DST_ALPHA;}
UpdateData(false);
}