render scaled pixmap
This commit is contained in:
parent
e37f631c4f
commit
39e05f49d0
2 changed files with 25 additions and 11 deletions
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: TextureRender.cc,v 1.2 2003/01/10 01:02:02 fluxgen Exp $
|
// $Id: TextureRender.cc,v 1.3 2003/04/28 22:27:29 fluxgen Exp $
|
||||||
|
|
||||||
#include "TextureRender.hh"
|
#include "TextureRender.hh"
|
||||||
|
|
||||||
|
@ -97,8 +97,9 @@ TextureRender::~TextureRender() {
|
||||||
|
|
||||||
|
|
||||||
Pixmap TextureRender::render(const FbTk::Texture &texture) {
|
Pixmap TextureRender::render(const FbTk::Texture &texture) {
|
||||||
|
if (texture.pixmap().drawable() != 0)
|
||||||
if (texture.type() & FbTk::Texture::PARENTRELATIVE)
|
return renderPixmap(texture);
|
||||||
|
else if (texture.type() & FbTk::Texture::PARENTRELATIVE)
|
||||||
return ParentRelative;
|
return ParentRelative;
|
||||||
else if (texture.type() & FbTk::Texture::SOLID)
|
else if (texture.type() & FbTk::Texture::SOLID)
|
||||||
return renderSolid(texture);
|
return renderSolid(texture);
|
||||||
|
@ -257,6 +258,18 @@ Pixmap TextureRender::renderGradient(const FbTk::Texture &texture) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Pixmap TextureRender::renderPixmap(const FbTk::Texture &src_texture) {
|
||||||
|
if (width != src_texture.pixmap().width() ||
|
||||||
|
height != src_texture.pixmap().height()) {
|
||||||
|
// copy src_texture's pixmap and
|
||||||
|
// scale to fit our size
|
||||||
|
FbPixmap new_pm(src_texture.pixmap());
|
||||||
|
new_pm.scale(width, height);
|
||||||
|
return new_pm.release();
|
||||||
|
}
|
||||||
|
// return copy of pixmap
|
||||||
|
return FbPixmap(src_texture.pixmap()).release();
|
||||||
|
}
|
||||||
|
|
||||||
XImage *TextureRender::renderXImage() {
|
XImage *TextureRender::renderXImage() {
|
||||||
Display *disp = FbTk::App::instance()->display();
|
Display *disp = FbTk::App::instance()->display();
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: TextureRender.hh,v 1.1 2003/01/09 21:09:49 fluxgen Exp $
|
// $Id: TextureRender.hh,v 1.2 2003/04/28 22:27:29 fluxgen Exp $
|
||||||
|
|
||||||
#ifndef FBTK_TEXTURRENDER_HH
|
#ifndef FBTK_TEXTURRENDER_HH
|
||||||
#define FBTK_TEXTURRENDER_HH
|
#define FBTK_TEXTURRENDER_HH
|
||||||
|
@ -51,7 +51,8 @@ public:
|
||||||
Pixmap renderSolid(const FbTk::Texture &src_texture);
|
Pixmap renderSolid(const FbTk::Texture &src_texture);
|
||||||
/// render gradient texture to pixmap
|
/// render gradient texture to pixmap
|
||||||
Pixmap renderGradient(const FbTk::Texture &src_texture);
|
Pixmap renderGradient(const FbTk::Texture &src_texture);
|
||||||
|
/// scales and renders a pixmap
|
||||||
|
Pixmap renderPixmap(const FbTk::Texture &src_texture);
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
Render to pixmap
|
Render to pixmap
|
||||||
|
|
Loading…
Reference in a new issue