コード例 #1
0
ファイル: game.cpp プロジェクト: sig-vip/Pacman
DGLE_RESULT DGLE_API Game::Initialize()
{
	pEngineCore->GetSubSystem(ESS_INPUT, (IEngineSubSystem *&)pInput);

	IRender *p_render;
	pEngineCore->GetSubSystem(ESS_RENDER, (IEngineSubSystem *&)p_render);
	p_render->SetClearColor(ColorWhite());
	p_render->GetRender2D(pRender2D);

	IResourceManager *p_res_man;
	pEngineCore->GetSubSystem(ESS_RESOURCE_MANAGER, (IEngineSubSystem *&)p_res_man);

	IEngineBaseObject *p_tmp_obj;

	p_res_man->GetDefaultResource(EOT_BITMAP_FONT, (IEngineBaseObject *&)pFont); // getting default font
	//p_res_man->Load(RESOURCE_PATH"\\fonts\\Times_New_Roman_12_rus.dft", (IEngineBaseObject *&)pFont, RES_LOAD_DEFAULT);

	p_res_man->Load(RESOURCE_PATH"\\sounds\\SwallowScore.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndSwallowScore");
	p_res_man->Load(RESOURCE_PATH"\\sounds\\SwallowBlackScore.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndSwallowBlackScore");
	p_res_man->Load(RESOURCE_PATH"\\sounds\\SwallowBigScore.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndSwallowBigScore");
	p_res_man->Load(RESOURCE_PATH"\\sounds\\SwallowHelpScore.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndSwallowHelpScore");
	p_res_man->Load(RESOURCE_PATH"\\sounds\\SwallowExit.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndSwallowExit");
	p_res_man->Load(RESOURCE_PATH"\\sounds\\SwallowGhost.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndSwallowGhost");
	p_res_man->Load(RESOURCE_PATH"\\sounds\\LostScore.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndLostScore");
	p_res_man->Load(RESOURCE_PATH"\\sounds\\IncreaseLives.wav", p_tmp_obj, RES_LOAD_DEFAULT, "SndIncreaseLives");

	NewGame();

	return S_OK;
}
コード例 #2
0
ファイル: Render3D.cpp プロジェクト: whztt07/DGLE
void CRender3D::DrawProfiler()
{
	if (_iProfilerState > 0)
	{
		Core()->RenderProfilerText("======Render3D Profiler=====", ColorWhite());
		Core()->RenderProfilerText(("Objects on screen :" + UIntToStr(_uiObjsDrawnCount)).c_str(), ColorWhite());
		Core()->RenderProfilerText(("Render delay      :" + UInt64ToStr(_ui64DrawDelay / 1000) + "." + UIntToStr(_ui64DrawDelay % 1000) + " ms").c_str(), ColorWhite());
	}
}
コード例 #3
0
ファイル: Render3D.cpp プロジェクト: whztt07/DGLE
void CRender3D::SetDefaultStates()
{
	uint vp_x, vp_y, vp_width, vp_height;
	_pCoreRenderer->GetViewport(vp_x, vp_y, vp_width, vp_height);
	
	_stCurState.fFovAngle = 60.f;
	_stCurState.fZNear = 0.25f;
	_stCurState.fZFar = 1000.f;
	_SetPerspectiveMatrix(vp_width, vp_height);

	_stCurState.matrixStack.Clear(MatrixIdentity());
	_pCoreRenderer->SetMatrix(_stCurState.matrixStack.Top());

	_stCurState.isLightingEnabled = false;
	_stCurState.stGlobalAmbient = TColor4(50, 50, 50, 255);
	
	_stCurState.stFogDesc.bEnabled = false;
	_stCurState.stFogDesc.stColor = ColorGray();
	_stCurState.stFogDesc.fStart = 500.f;
	_stCurState.stFogDesc.fEnd = 1000.f;

	if (_pFFP)
	{
		_pFFP->ToggleGlobalLighting(_stCurState.isLightingEnabled);
		_pFFP->SetGloablAmbientLight(_stCurState.stGlobalAmbient);
		
		_pFFP->SetFogEnabled(_stCurState.stFogDesc.bEnabled);
		_pFFP->SetFogColor(_stCurState.stFogDesc.stColor);
		_pFFP->ConfigureFog(_stCurState.stFogDesc.fStart, _stCurState.stFogDesc.fEnd);
	}

	_stCurState.eBlendingMode = BE_NORMAL;
	_stCurState.stBlendStateDesc = TBlendStateDesc();
	_pCoreRenderer->SetBlendState(_stCurState.stBlendStateDesc);

	_stCurState.stDepthStencilDesc = TDepthStencilDesc();
	_pCoreRenderer->SetDepthStencilState(_stCurState.stDepthStencilDesc);

	_stCurState.stRasterStateDesc = TRasterizerStateDesc();
	_stCurState.stRasterStateDesc.eCullMode = PCM_BACK;
	_pCoreRenderer->SetRasterizerState(_stCurState.stRasterStateDesc);
	
	_stCurState.stColor = ColorWhite();
	_pCoreRenderer->SetColor(_stCurState.stColor);
	
	_stCurState.pCurMat = INVALID_MATERIAL;

	Core()->pRender()->Unbind(EOT_UNKNOWN);
}
コード例 #4
0
CFixedFunctionPipeline::CFixedFunctionPipeline() : _c_fAttenuationFactor(1.75f), _bStateFilterEnabled(true)
{
	glGetIntegerv(GL_MAX_LIGHTS, &_iMaxLights);
	_pLights = new TLight[_iMaxLights];

	glFogi(GL_FOG_MODE, GL_LINEAR);
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT, TColor4(50, 50, 50, 255));

	for (int i = 0; i < _iMaxLights; ++i)
	{
		_pLights[i].type = LT_DIRECTIONAL;
		_pLights[i].mview = MatrixIdentity();

		glDisable(GL_LIGHT0 + i);
		glLightfv(GL_LIGHT0 + i, GL_DIFFUSE, ColorWhite());
		glLightfv(GL_LIGHT0 + i, GL_SPECULAR, ColorWhite());
		glLightf(GL_LIGHT0 + i, GL_CONSTANT_ATTENUATION, 1.f);
		glLightf(GL_LIGHT0 + i, GL_LINEAR_ATTENUATION, _c_fAttenuationFactor / 100.f);
		glLightf(GL_LIGHT0 + i, GL_SPOT_CUTOFF, 180.f);

		const GLfloat pos[] = {0.f, 0.f, 1.f, 0.f};
		glLightfv(GL_LIGHT0 + i, GL_POSITION, pos);
	}
}
コード例 #5
0
void acCustomGraphicsScene::drawBackground(QPainter *painter, const QRectF &rect) 
{
    // color Black
    QColor ColorBlack(0, 0, 0);

    // color White
    QColor ColorWhite(255, 255, 255);

    // Draw a line grid
    if (m_gridenabled != eCustomGraphicsScene_Grids::None)
    {
        painter->setPen(Qt::white);

        // Start point for Horizonal steps
        qreal startH = 0;

        //Start point for Virtical steps
        qreal startV = 0;

        switch (m_gridenabled)
        {
        case eCustomGraphicsScene_Grids::Block:
                {
                    QImage image(":/CompressonatorGUI/Images/GridSolid.png");
                    QBrush brush(image);
                    painter->fillRect(rect, brush);
                    break;
                }

        case eCustomGraphicsScene_Grids::Lines:
        {
            // First fill the BackGround as black
            painter->fillRect(rect, ColorBlack);

            // draw horizontal grid lines
            painter->setPen(QPen(ColorWhite));

            for (qreal y = startH; y < rect.bottom();)
            {
                y += m_gridStep;
                painter->drawLine(rect.left(), y, rect.right(), y);
            }

            // draw virtical grid lines   
            for (qreal x = startV; x < rect.right();)
            {
                x += m_gridStep;
                painter->drawLine(x, rect.top(), x, rect.bottom());
            }
            break;
        }

        case eCustomGraphicsScene_Grids::Dots:
        {
            // First fill the BackGround as black
            painter->fillRect(rect, ColorBlack);

            // draw points
            painter->setPen(QPen(ColorWhite));

            for (qreal y = startH; y < rect.bottom();)
            {
                y += m_gridStep;
                // draw virtical grid lines
                for (qreal x = startV; x < rect.right();)
                {
                    x += m_gridStep;
                    painter->drawPoint(x, y);
                }
            }

            break;
        }

        default:
                {
                    painter->fillRect(rect, ColorBlack);
                    break;
                }
        }

    }
    else
        painter->fillRect(rect, ColorBlack);
}
コード例 #6
0
ファイル: Light.cpp プロジェクト: Zariostr/DGLE
CLight::CLight(uint uiInstIdx):
CInstancedObj(uiInstIdx), _bEnabled(true), _eType(LT_DIRECTIONAL),
_stMainCol(ColorWhite()), _stPos(TPoint3()), _stDir(TVector3(0.f, 0.f, 1.f)),
_fRange(100.f), _fIntensity(1.f), _fAngle(90.f)
{}