mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 21:49:55 +00:00
Removing now unused oengine/imagerotate
This commit is contained in:
parent
d8f2d0195a
commit
9810eafe23
3 changed files with 0 additions and 116 deletions
|
@ -74,7 +74,6 @@ set(LIBDIR ${CMAKE_SOURCE_DIR}/libs)
|
||||||
set(OENGINE_OGRE
|
set(OENGINE_OGRE
|
||||||
${LIBDIR}/openengine/ogre/renderer.cpp
|
${LIBDIR}/openengine/ogre/renderer.cpp
|
||||||
${LIBDIR}/openengine/ogre/fader.cpp
|
${LIBDIR}/openengine/ogre/fader.cpp
|
||||||
${LIBDIR}/openengine/ogre/imagerotate.cpp
|
|
||||||
${LIBDIR}/openengine/ogre/selectionbuffer.cpp
|
${LIBDIR}/openengine/ogre/selectionbuffer.cpp
|
||||||
)
|
)
|
||||||
set(OENGINE_GUI
|
set(OENGINE_GUI
|
||||||
|
|
|
@ -1,88 +0,0 @@
|
||||||
#include "imagerotate.hpp"
|
|
||||||
|
|
||||||
#include <OgreRoot.h>
|
|
||||||
#include <OgreSceneManager.h>
|
|
||||||
#include <OgreImage.h>
|
|
||||||
#include <OgreTexture.h>
|
|
||||||
#include <OgreRenderTarget.h>
|
|
||||||
#include <OgreCamera.h>
|
|
||||||
#include <OgreTextureUnitState.h>
|
|
||||||
#include <OgreHardwarePixelBuffer.h>
|
|
||||||
|
|
||||||
using namespace Ogre;
|
|
||||||
using namespace OEngine::Render;
|
|
||||||
|
|
||||||
void ImageRotate::rotate(const std::string& sourceImage, const std::string& destImage, const float angle)
|
|
||||||
{
|
|
||||||
Root* root = Ogre::Root::getSingletonPtr();
|
|
||||||
|
|
||||||
std::string destImageRot = std::string(destImage) + std::string("_rot");
|
|
||||||
|
|
||||||
SceneManager* sceneMgr = root->createSceneManager(ST_GENERIC);
|
|
||||||
Camera* camera = sceneMgr->createCamera("ImageRotateCamera");
|
|
||||||
|
|
||||||
MaterialPtr material = MaterialManager::getSingleton().create("ImageRotateMaterial", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
|
|
||||||
material->getTechnique(0)->getPass(0)->setLightingEnabled(false);
|
|
||||||
material->getTechnique(0)->getPass(0)->setDepthCheckEnabled(false);
|
|
||||||
TextureUnitState* tus = material->getTechnique(0)->getPass(0)->createTextureUnitState(sourceImage);
|
|
||||||
Degree deg(angle);
|
|
||||||
tus->setTextureRotate(Radian(deg.valueRadians()));
|
|
||||||
tus->setTextureAddressingMode(TextureUnitState::TAM_BORDER);
|
|
||||||
tus->setTextureBorderColour(ColourValue(0, 0, 0, 0));
|
|
||||||
|
|
||||||
Rectangle2D* rect = new Rectangle2D(true);
|
|
||||||
rect->setCorners(-1.0, 1.0, 1.0, -1.0);
|
|
||||||
rect->setMaterial("ImageRotateMaterial");
|
|
||||||
// Render the background before everything else
|
|
||||||
rect->setRenderQueueGroup(RENDER_QUEUE_BACKGROUND);
|
|
||||||
|
|
||||||
// Use infinite AAB to always stay visible
|
|
||||||
AxisAlignedBox aabInf;
|
|
||||||
aabInf.setInfinite();
|
|
||||||
rect->setBoundingBox(aabInf);
|
|
||||||
|
|
||||||
// Attach background to the scene
|
|
||||||
SceneNode* node = sceneMgr->getRootSceneNode()->createChildSceneNode();
|
|
||||||
node->attachObject(rect);
|
|
||||||
|
|
||||||
// retrieve image width and height
|
|
||||||
TexturePtr sourceTexture = TextureManager::getSingleton().getByName(sourceImage);
|
|
||||||
unsigned int width = sourceTexture->getWidth();
|
|
||||||
unsigned int height = sourceTexture->getHeight();
|
|
||||||
|
|
||||||
TexturePtr destTextureRot = TextureManager::getSingleton().createManual(
|
|
||||||
destImageRot,
|
|
||||||
ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
|
|
||||||
TEX_TYPE_2D,
|
|
||||||
width, height,
|
|
||||||
0,
|
|
||||||
PF_FLOAT16_RGBA,
|
|
||||||
TU_RENDERTARGET);
|
|
||||||
|
|
||||||
RenderTarget* rtt = destTextureRot->getBuffer()->getRenderTarget();
|
|
||||||
rtt->setAutoUpdated(false);
|
|
||||||
Viewport* vp = rtt->addViewport(camera);
|
|
||||||
vp->setOverlaysEnabled(false);
|
|
||||||
vp->setShadowsEnabled(false);
|
|
||||||
vp->setBackgroundColour(ColourValue(0,0,0,0));
|
|
||||||
|
|
||||||
rtt->update();
|
|
||||||
|
|
||||||
//copy the rotated image to a static texture
|
|
||||||
TexturePtr destTexture = TextureManager::getSingleton().createManual(
|
|
||||||
destImage,
|
|
||||||
ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
|
|
||||||
TEX_TYPE_2D,
|
|
||||||
width, height,
|
|
||||||
0,
|
|
||||||
PF_FLOAT16_RGBA,
|
|
||||||
Ogre::TU_STATIC);
|
|
||||||
|
|
||||||
destTexture->getBuffer()->blit(destTextureRot->getBuffer());
|
|
||||||
|
|
||||||
// remove all the junk we've created
|
|
||||||
TextureManager::getSingleton().remove(destImageRot);
|
|
||||||
MaterialManager::getSingleton().remove("ImageRotateMaterial");
|
|
||||||
root->destroySceneManager(sceneMgr);
|
|
||||||
delete rect;
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
#ifndef OENGINE_OGRE_IMAGEROTATE_HPP
|
|
||||||
#define OENGINE_OGRE_IMAGEROTATE_HPP
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace OEngine
|
|
||||||
{
|
|
||||||
namespace Render
|
|
||||||
{
|
|
||||||
|
|
||||||
/// Rotate an image by certain degrees and save as file, uses the GPU
|
|
||||||
/// Make sure Ogre Root is initialised before calling
|
|
||||||
class ImageRotate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* @param source image (file name - has to exist in an resource group)
|
|
||||||
* @param name of the destination texture to save to (in memory)
|
|
||||||
* @param angle in degrees to turn
|
|
||||||
*/
|
|
||||||
static void rotate(const std::string& sourceImage, const std::string& destImage, const float angle);
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in a new issue