MCPcopy Create free account
hub / github.com/OGRECave/ogre-next / keyReleased

Method keyReleased

Samples/2.0/Common/src/TutorialGameState.cpp:136–199  ·  view source on GitHub ↗

-----------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

134 }
135 //-----------------------------------------------------------------------------------
136 void TutorialGameState::keyReleased( const SDL_KeyboardEvent &arg )
137 {
138 if( arg.keysym.scancode == SDL_SCANCODE_F1 &&
139 ( arg.keysym.mod & ~( KMOD_NUM | KMOD_CAPS ) ) == 0 )
140 {
141 mDisplayHelpMode = ( mDisplayHelpMode + 1 ) % mNumDisplayHelpModes;
142
143 Ogre::String finalText;
144 generateDebugText( 0, finalText );
145 mDebugText->setCaption( finalText );
146 mDebugTextShadow->setCaption( finalText );
147 }
148 else if( arg.keysym.scancode == SDL_SCANCODE_F1 &&
149 ( arg.keysym.mod & ( KMOD_LCTRL | KMOD_RCTRL ) ) )
150 {
151 // Hot reload of PBS shaders. We need to clear the microcode cache
152 // to prevent using old compiled versions.
153 Ogre::Root *root = mGraphicsSystem->getRoot();
154 Ogre::HlmsManager *hlmsManager = root->getHlmsManager();
155
156 Ogre::Hlms *hlms = hlmsManager->getHlms( Ogre::HLMS_PBS );
157 Ogre::GpuProgramManager::getSingleton().clearMicrocodeCache();
158 hlms->reloadFrom( hlms->getDataFolder() );
159 }
160 else if( arg.keysym.scancode == SDL_SCANCODE_F2 &&
161 ( arg.keysym.mod & ( KMOD_LCTRL | KMOD_RCTRL ) ) )
162 {
163 // Hot reload of Unlit shaders.
164 Ogre::Root *root = mGraphicsSystem->getRoot();
165 Ogre::HlmsManager *hlmsManager = root->getHlmsManager();
166
167 Ogre::Hlms *hlms = hlmsManager->getHlms( Ogre::HLMS_UNLIT );
168 Ogre::GpuProgramManager::getSingleton().clearMicrocodeCache();
169 hlms->reloadFrom( hlms->getDataFolder() );
170 }
171 else if( arg.keysym.scancode == SDL_SCANCODE_F3 &&
172 ( arg.keysym.mod & ( KMOD_LCTRL | KMOD_RCTRL ) ) )
173 {
174 // Hot reload of Compute shaders.
175 Ogre::Root *root = mGraphicsSystem->getRoot();
176 Ogre::HlmsManager *hlmsManager = root->getHlmsManager();
177
178 Ogre::Hlms *hlms = hlmsManager->getComputeHlms();
179 Ogre::GpuProgramManager::getSingleton().clearMicrocodeCache();
180 hlms->reloadFrom( hlms->getDataFolder() );
181 }
182 else if( arg.keysym.scancode == SDL_SCANCODE_F5 &&
183 ( arg.keysym.mod & ( KMOD_LCTRL | KMOD_RCTRL ) ) )
184 {
185 // Force device reelection
186 Ogre::Root *root = mGraphicsSystem->getRoot();
187 root->getRenderSystem()->validateDevice( true );
188 }
189 else
190 {
191 bool handledEvent = false;
192
193 if( mCameraController )

Callers

nothing calls this directly

Calls 8

getRootMethod · 0.80
getHlmsManagerMethod · 0.80
getHlmsMethod · 0.80
clearMicrocodeCacheMethod · 0.80
validateDeviceMethod · 0.80
setCaptionMethod · 0.45
reloadFromMethod · 0.45
getRenderSystemMethod · 0.45

Tested by

no test coverage detected