コード例 #1
0
ファイル: input.c プロジェクト: uckermann/SnemulDS
int get_joypad()
{
	int res = 0;

/*#define KEYS_CUR (( ((~REG_KEYINPUT)&0x3ff) | (((~IPC->buttons)&3)<<10) | \
	 			 (((~IPC->buttons)<<6) & (KEY_TOUCH|KEY_LID) ))^KEY_LID)	
	keys = KEYS_CUR;*/
	
	//scanKeys();	
	keys = keysCurrent();

#if 0
		if( (keys & KEY_L))
		{
			if ((keys & KEY_UP))
			{
				APU_MAX++;
			}
			if ((keys & KEY_DOWN))
			{
				APU_MAX--;
				if (APU_MAX < 100)
					APU_MAX = 100;
			}  
			if ((keys & KEY_LEFT))
			{
				APU_printLog();				
			}
			if ((keys & KEY_RIGHT))
			{
				LOG("%04x %04x %02x %02x %04x %04x\n", CPU.PC,
				(uint32)((sint32)PCptr+(sint32)SnesPCOffset),
				PORT_SNES_TO_SPC[1], PORT_SPC_TO_SNES[1],  
				
				 (*(uint32*)memUncached(0x2FE0000)) & 0xFFFF, *(uint16 *)(APU_RAM_ADDRESS+0x18));
				
				//PORT_SNES_TO_SPC[1] = 0x44; 		
			}
			
		}	
#endif	
	
	if ((keys & KEY_L) && ( keys & KEY_R ) && ( keys & KEY_START))
	{		
		if (keys & KEY_LEFT)
		{
			if (joypad_conf_mode)
				return 0;			
			CFG.mouse ^= 1;
/*			lcdSwap();
			if (GUI.hide)
				setBacklight(CFG.mouse ? PM_BACKLIGHT_BOTTOM : PM_BACKLIGHT_TOP);*/
			myLCDSwap();
			joypad_conf_mode = 1;
			return 0;			
		}
		if (keys & KEY_RIGHT)
		{
			if (joypad_conf_mode)
				return 0;			
			CFG.mouse = 0;
/*			lcdSwap();
			if (GUI.hide)
				setBacklight(CFG.mouse ? PM_BACKLIGHT_BOTTOM : PM_BACKLIGHT_TOP);*/
			myLCDSwap();			
			joypad_conf_mode = 1;
			return 0;				
		}		
		if (keys & KEY_UP)
		{
			if (joypad_conf_mode)
				return 0;
			PPU_ChangeLayerConf(CFG.LayersConf+1);
			joypad_conf_mode = 1;
			return 0;
		}			
		if (keys & KEY_DOWN)
		{
			if (joypad_conf_mode)
				return 0;	
			PPU_ChangeLayerConf(0);
			joypad_conf_mode = 1;
			return 0;
		}			
		joypad_conf_mode = 0;		
		return 0;
	} 
	 
#if 0	 
	if ((keys & KEY_L) && ( keys & KEY_R ) && ( keys & KEY_SELECT))
	{		
		if (keys & KEY_LEFT)
		{
			if (joypad_conf_mode)
				return 0;			
			CFG.BG_priority ^= 1;
			LOG("BG_pri = %d\n", CFG.BG_priority);
			joypad_conf_mode = 1;
			return 0;			
		}
		if (keys & KEY_RIGHT)
		{
			if (joypad_conf_mode)
				return 0;
			CFG.Debug ^= 1;
			if (CFG.Debug)
				showDebugMenu();
			joypad_conf_mode = 1;
			return 0;			
		}		
		if (keys & KEY_UP)
		{
			if (joypad_conf_mode)
				return 0;			
			CFG.Debug2 --;
			LOG("Debug = %d\n", CFG.Debug);
			return 0;			
		}				
		if (keys & KEY_DOWN)
		{
			if (joypad_conf_mode)
				return 0;			
			CFG.Debug2 ++;
			LOG("Debug = %d\n", CFG.Debug);
			return 0;			
		}		
		joypad_conf_mode = 0;		
		return 0;
	}
#endif	 	 
	 
/*	scanKeys();	
	keys = keysHeld();*/
	if( keys & KEY_B ) res |= 0x8000;
	if( keys & KEY_Y ) res |= 0x4000;
	if( keys & KEY_SELECT ) res |= 0x2000;
	if( keys & KEY_START ) res |= 0x1000;
	if( keys & KEY_UP ) res |= 0x0800;
	if( keys & KEY_DOWN ) res |= 0x0400;
	if( keys & KEY_LEFT ) res |= 0x0200;
	if( keys & KEY_RIGHT ) res |= 0x0100;
	if( keys & KEY_A ) res |= 0x0080;
	if( keys & KEY_X ) res |= 0x0040;
	if( keys & KEY_L ) res |= 0x0020;
	if( keys & KEY_R ) res |= 0x0010;	
	
	if (CFG.mouse)
	{
		if((keys & KEY_LEFT) || (keys & KEY_Y)) mouse_cur_b = 1;
		if((keys & KEY_RIGHT) || (keys & KEY_A)) mouse_cur_b = 2;
		if( ( !(keys & KEY_L) && (keys & KEY_DOWN) ) ||	
		    ( !(keys & KEY_R) && (keys & KEY_B) )) mouse_cur_b = 0;
		    
		if (keys & KEY_SELECT)
			PPU_reset();
		
		if( (keys & KEY_L) || (keys & KEY_R) )
		{
			if (((keys & KEY_UP) || (keys & KEY_X)) && GFX.YScroll > 0)
			{
				GFX.YScroll--;
				GFX.BG3YScroll = GFX.YScroll;
			}
			if (((keys & KEY_DOWN) || (keys & KEY_B)) && GFX.YScroll < 32)
			{
				GFX.YScroll++;
				GFX.BG3YScroll = GFX.YScroll;
			}  
		}

		touchPosition touchXY;
		touchRead(&touchXY);
		if (keys & KEY_TOUCH)
		{		
			int tx=0, ty=0;

			tx = touchXY.px;
			if (CFG.Scaled == 0) // No scaling
				ty = touchXY.py+GFX.YScroll;
			else if (CFG.Scaled == 1) // Half scaling
				ty = touchXY.py*208/192+12; // FIXME			
			else if (CFG.Scaled == 2) // Full screen
				ty = touchXY.py*224/192;
			
			if (CFG.MouseMode == 0)
			{
				SNES.mouse_x = tx; 
				SNES.mouse_x = ty;
			}
			else
			if (CFG.MouseMode == 1)
			{
				SNESC.RAM[CFG.MouseXAddr] = tx+CFG.MouseXOffset;
        		SNESC.RAM[CFG.MouseYAddr] = ty+CFG.MouseYOffset;				
			}
			if (CFG.MouseMode == 2)
			{		
				*(uint16 *)(&SNESC.RAM[CFG.MouseXAddr]) = tx*2;
        		*(uint16 *)(&SNESC.RAM[CFG.MouseYAddr]) = ty*2;
			}			
			if( (!(keys & KEY_L) &&  (keys & KEY_UP)) ||
				(!(keys & KEY_R) && (keys & KEY_X)) )
			{
				SNES.prev_mouse_x = SNES.mouse_x; 
				SNES.prev_mouse_y = SNES.mouse_y;
				SNES.mouse_b =  0;
			}
			else
				SNES.mouse_b =  mouse_cur_b;
		
		}
		else
		SNES.mouse_b =  0;
	}
		
	return res;
}
コード例 #2
0
ファイル: renderwidget.cpp プロジェクト: smatcher/S5old
RenderWidget::RenderWidget()
{
    /// DEBUG DRAW
    m_draw_debug_button = new QPushButton("Debug Gizmos");
    m_draw_debug_menu = new QMenu();

    m_draw_debug = m_draw_debug_menu->addAction("draw gizmos");
    m_draw_debug->setCheckable(true);
    m_draw_debug->setChecked(RENDER_MANAGER.getDrawDebug());
    m_draw_debug_menu->addSeparator();
    RenderManager::DebugGizmosFilter filter = RENDER_MANAGER.getDrawDebugFilter();
    m_draw_transforms = m_draw_debug_menu->addAction("transforms");
    m_draw_transforms->setCheckable(true);
    m_draw_transforms->setChecked(filter.draw_transforms);
    m_draw_lights = m_draw_debug_menu->addAction("lights");
    m_draw_lights->setCheckable(true);
    m_draw_lights->setChecked(filter.draw_lights);
    m_draw_cameras = m_draw_debug_menu->addAction("cameras");
    m_draw_cameras->setCheckable(true);
    m_draw_cameras->setChecked(filter.draw_cameras);
    m_draw_skeletons = m_draw_debug_menu->addAction("skeletons");
    m_draw_skeletons->setCheckable(true);
    m_draw_skeletons->setChecked(filter.draw_skeletons);
    m_draw_colliders = m_draw_debug_menu->addAction("colliders");
    m_draw_colliders->setCheckable(true);
    m_draw_colliders->setChecked(filter.draw_colliders);

    /// OPTIONS
    m_options_button = new QPushButton("Options");
    m_options_menu = new QMenu();

    m_options_shadows = m_options_menu->addAction("shadows");
    m_options_shadows->setCheckable(true);
    m_options_shadows->setChecked(RENDER_MANAGER.getShadowsEnabled());
    m_options_bloom = m_options_menu->addAction("bloom");
    m_options_bloom->setCheckable(true);
    m_options_bloom->setChecked(RENDER_MANAGER.getBloomEnabled());
    m_options_sss = m_options_menu->addAction("SSS");
    m_options_sss->setCheckable(true);
    m_options_sss->setChecked(RENDER_MANAGER.getSSSEnabled());
    m_options_lightscattering = m_options_menu->addAction("LightScattering");
    m_options_lightscattering->setCheckable(true);
    m_options_lightscattering->setChecked(RENDER_MANAGER.getLightScatteringEnabled());
    m_options_normalmapping = m_options_menu->addAction("Normal mapping");
    m_options_normalmapping->setCheckable(true);
    m_options_normalmapping->setChecked(RENDER_MANAGER.getNormalMappingEnabled());
    m_options_specularmapping = m_options_menu->addAction("Specular mapping");
    m_options_specularmapping->setCheckable(true);
    m_options_specularmapping->setChecked(RENDER_MANAGER.getSpecularMappingEnabled());
    m_options_forward_pipeline = m_options_menu->addAction("Forward pipeline");
    m_options_forward_pipeline->setCheckable(true);
    m_options_deferred_pipeline = m_options_menu->addAction("Deferred pipeline");
    m_options_deferred_pipeline->setCheckable(true);
    QActionGroup* pipelinesGroup = new QActionGroup(m_options_menu);
    pipelinesGroup->addAction(m_options_forward_pipeline);
    pipelinesGroup->addAction(m_options_deferred_pipeline);
    if(RENDER_MANAGER.getRenderPipeline() == RenderManager::FORWARD_PIPELINE)
        m_options_forward_pipeline->setChecked(true);
    else
        m_options_deferred_pipeline->setChecked(true);

    /// CAMERAS
    m_cameras_combo = new QComboBox();
    m_cameras_combo->setModel(CAMERA_MANAGER.getDebugModel());
    m_cameras_combo->setView(CAMERA_MANAGER.getDebugView());

    QHBoxLayout* layout = new QHBoxLayout;
    layout->addWidget(m_draw_debug_button);
    layout->addWidget(m_options_button);
    layout->addWidget(m_cameras_combo);
    //layout->addStretch(1);
    setLayout(layout);

    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
    connect(m_draw_debug_button, SIGNAL(clicked()), this, SLOT(showDebugMenu()));
    connect(m_draw_debug, SIGNAL(triggered()), this, SLOT(drawDebugChanged()));
    connect(m_draw_colliders, SIGNAL(triggered()), this, SLOT(drawDebugFilterChanged()));
    connect(m_draw_cameras, SIGNAL(triggered()), this, SLOT(drawDebugFilterChanged()));
    connect(m_draw_transforms, SIGNAL(triggered()), this, SLOT(drawDebugFilterChanged()));
    connect(m_draw_lights, SIGNAL(triggered()), this, SLOT(drawDebugFilterChanged()));
    connect(m_draw_skeletons, SIGNAL(triggered()), this, SLOT(drawDebugFilterChanged()));

    connect(m_options_button, SIGNAL(clicked()), this, SLOT(showOptionsMenu()));
    connect(m_options_shadows, SIGNAL(triggered()), this, SLOT(optionShadowsChanged()));
    connect(m_options_bloom, SIGNAL(triggered()), this, SLOT(optionBloomChanged()));
    connect(m_options_sss, SIGNAL(triggered()), this, SLOT(optionSSSChanged()));
    connect(m_options_lightscattering, SIGNAL(triggered()), this, SLOT(optionLightScatteringChanged()));
    connect(m_options_normalmapping, SIGNAL(triggered()), this, SLOT(optionNormalMappingChanged()));
    connect(m_options_specularmapping, SIGNAL(triggered()), this, SLOT(optionSpecularMappingChanged()));
    connect(m_options_forward_pipeline, SIGNAL(triggered()), this, SLOT(optionPipelineToForward()));
    connect(m_options_deferred_pipeline, SIGNAL(triggered()), this, SLOT(optionPipelineToDeferred()));
}