Exemple #1
0
	Notify::Notify(){
		//BOOST_ASSERT(!msg.empty());

		//バルーンとタスクトレイの設定
		//ZeroMemory(&notifyData, sizeof(NOTIFYICONDATA));
		this->notifyData = boost::shared_ptr<NOTIFYICONDATA>(new NOTIFYICONDATA(), NotifyDeleter() );
		this->notifyData->cbSize = sizeof(NOTIFYICONDATA);
		this->notifyData->uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO;
		this->notifyData->uID = 0;
		this->notifyData->uCallbackMessage = WM_MYNOTIFY;
		this->notifyData->uTimeout = 1000;
		this->notifyData->hWnd = sys::Form::GetInst()->GetHandle();
		this->notifyData->hIcon = (HICON)LoadIcon(NULL, IDI_APPLICATION);

		if(!this->notifyData->hWnd){
			throw std::runtime_error("ウィンドウハンドルがnullです");
		}
		_tcscpy_s(notifyData->szInfoTitle, _T("espoirが起動しました"));
		Stringstream str;
		str << _T("ここにデバッグメッセージやゲームの情報が表示されます") << std::endl;
		str << _T("ゲームが初期化されました") << std::endl;
		str << _T("■キャラクターが作成されました") << std::endl;
		str << _T("x = 100 y = 200");
		_tcscpy_s(notifyData->szInfo, str.str().c_str());
		_tcscpy_s(notifyData->szTip, _T("test"));

		if(!Shell_NotifyIcon(NIM_ADD, notifyData.get())){
			//throw std::runtime_error("通知に失敗しました");
		}
		DOut dout;
		dout << GetLastError() << std::endl;

	}
Exemple #2
0
        bool floatToString( float _value, String & _str )
        {
            Stringstream ss;
            ss << _value;

            _str = ss.str();

            return true;
        }
Exemple #3
0
		bool unsignedToString( uint32_t _value, String & _str )
		{
			Stringstream ss;
			ss << _value;

			_str = ss.str();

            return true;
		}
Exemple #4
0
        bool stringToFloat( const String & _str, float & _value )
        {
            Stringstream ss;
            ss << _str;
            ss >> _value;

            if( ss.fail() == true )
            {
                return false;
            }

            return true;
        }
Exemple #5
0
        bool stringToUnsigned( const String & _str, uint32_t & _value )
        {
            Stringstream ss;
            ss << _str;
            ss >> _value;

            if( ss.fail() == true )
            {
                return false;
            }

            return true;
        }
Exemple #6
0
	void Player::render()
	{
		if( this->isChangedScene() == true )
		{
			return;
		}

        unsigned int debugMask = APPLICATION_SERVICE(m_serviceProvider)
            ->getDebugMask();

		RenderObjectState state;
		state.viewport = m_renderViewport;
		state.camera = m_renderCamera;
		state.clipplane = m_renderClipplane;
		state.target = m_renderTarget;

		RenderServiceInterface * renderService = RENDER_SERVICE( m_serviceProvider );

		if( m_scene != nullptr )
		{
			m_scene->render( renderService, &state, debugMask );
		}

		MODULE_SERVICE(m_serviceProvider)
			->render( &state, debugMask );

		RENDER_SERVICE(m_serviceProvider)
			->endLimitRenderObjects();

		if( m_arrow != nullptr )
		{
			m_arrow->render( renderService, &state, debugMask );
		}

//#	ifndef MENGINE_MASTER_RELEASE

		if( m_showDebugText != 0 )
		{			
			const RenderDebugInfo & rdi = 
				RENDER_SERVICE(m_serviceProvider)->getDebugInfo();

			const RenderTextureDebugInfo & rtdi =
				RENDERTEXTURE_SERVICE(m_serviceProvider)->getDebugInfo();

			//size_t particlesCount = 
			//	Holder<ParticleEngine>::get()->getFrameParticlesCount();

			uint32_t particlesCount = 0;

			Stringstream ss;

			ss << "FPS: " << m_fps << std::endl;

			if( m_showDebugText > 1 )
			{
				const Resolution & contentResolution = APPLICATION_SERVICE( m_serviceProvider )
					->getContentResolution();

				double sreenfillrate = rdi.fillrate / double( contentResolution.getWidth() * contentResolution.getHeight() );

				ss << "Fillrate " << std::setiosflags(std::ios::fixed) << std::setprecision(2) << sreenfillrate << " (Object " << rdi.object << " Triangle " << rdi.triangle << ")" << std::endl;
				ss << "DIP: " << rdi.dips << std::endl;

				ERenderBatchMode mode = RENDER_SERVICE(m_serviceProvider)
					->getBatchMode();

				ss << "Smart Batch: " << mode << " " << rdi.batch <<  std::endl;
				ss << "Texture Memory Usage: " << (float)rtdi.textureMemory / (1024.f*1024.f) << std::endl;
				ss << "Texture Count: " << rtdi.textureCount << std::endl;

				ss << "Particles: " << particlesCount << std::endl;
			}

			if( m_showDebugText == 2 )
			{
				class CompileResourceVisitor
					: public Visitor
					, public ConcreteVisitor<ResourceReference>
				{
				public:
					CompileResourceVisitor()
						: m_count(0)
					{
					}

				public:
					uint32_t getCount() const
					{
						return m_count;
					}

				protected:
					void accept( ResourceReference * _resource )
					{
						if( _resource->isCompile() == false )
						{
							return;
						}

						++m_count;
					}

				protected:
					uint32_t m_count;
				};

				CompileResourceVisitor crv;

				RESOURCE_SERVICE(m_serviceProvider)
					->visitResources( &crv );

				ss << "Resources: " << crv.getCount() << std::endl;

				PrefetcherDebugInfo pdInfo = PREFETCHER_SERVICE(m_serviceProvider)
					->getDebugInfo();

				ss << "Prefetcher " << pdInfo.receiverCount << std::endl;

				MousePickerSystemInterface * mousePickerSystem = 
					PLAYER_SERVICE(m_serviceProvider)->getMousePickerSystem();

				ss << "PickerTrapCount:" << mousePickerSystem->getPickerTrapCount() << std::endl;
			}
			else if( m_showDebugText == 3 )
            {
			    VisitorPlayerFactoryManager pfmv(m_serviceProvider, CONST_STRING(m_serviceProvider, Node), ss);

			    PROTOTYPE_SERVICE(m_serviceProvider)
				    ->visitGenerators( &pfmv );
            }
			else if( m_showDebugText == 4 )
            {
                class MyVisitorClassTypeScope
                    : public pybind::visitor_class_type_scope
                {
                public:
                    MyVisitorClassTypeScope( Stringstream & _ss )
                        : m_ss(_ss)
                        , m_count(0)
                    {
                    }

                protected:
                    void operator = ( const MyVisitorClassTypeScope & )
                    {
                    }

                protected:
                    void visit_scope( pybind::class_type_scope * _scope ) override
                    {   
                        uint32_t count = _scope->getObjectCount();

						if( count == 0 )
						{
							return;
						}

						if( m_count % 3 == 0 )
						{
							m_ss << "Py: ";
						}
                        
						m_ss << _scope->get_name() << " " << count;
                        
						if( m_count % 3 != 2 )
						{
							m_ss << "        ";
						}
						else
						{
							m_ss << std::endl;
						}

                        ++m_count;
                    }

                protected:                    
                    Stringstream & m_ss;
                    uint32_t m_count;
                };

				pybind::kernel_interface * kernel = pybind::get_kernel();

                MyVisitorClassTypeScope mvcts(ss);
				kernel->visit_types_scope( &mvcts );
            }
            
			String text = ss.str();

			TVectorString args;
			args.push_back( text );
			m_debugText->setTextFormatArgs( args );

            float gameViewportAspect;
            Viewport gameViewport;

            APPLICATION_SERVICE(m_serviceProvider)
                ->getGameViewport( gameViewportAspect, gameViewport );

            m_debugText->setLocalPosition( mt::vec3f(gameViewport.begin, 0.f) );

			const Resolution & resolution = APPLICATION_SERVICE( m_serviceProvider )
				->getCurrentResolution();

			const Resolution & content = APPLICATION_SERVICE( m_serviceProvider )
				->getContentResolution();

			mt::vec2f scale;
			content.calcScale( resolution, scale );

			m_debugText->setScale( mt::vec3f( scale, 1.f ) );

			m_debugText->render( renderService, &state, debugMask );
		}
//#	endif
		//m_renderCamera2D->setLocalPosition( pos );
	}