Merge remote-tracking branch 'shyotl/V2TextureSystem'

This commit is contained in:
Siana Gearz
2011-04-26 00:28:58 +02:00
229 changed files with 8451 additions and 4682 deletions

View File

@@ -428,8 +428,8 @@ set(viewer_SOURCE_FILES
llviewerdisplay.cpp
llviewergenericmessage.cpp
llviewergesture.cpp
llviewerimage.cpp
llviewerimagelist.cpp
#llviewerimage.cpp
#llviewerimagelist.cpp
llviewerinventory.cpp
llviewerjointattachment.cpp
llviewerjoint.cpp
@@ -459,7 +459,9 @@ set(viewer_SOURCE_FILES
llviewershadermgr.cpp
llviewerstats.cpp
llviewertexteditor.cpp
llviewertexture.cpp
llviewertextureanim.cpp
llviewertexturelist.cpp
llviewerthrottle.cpp
llviewervisualparam.cpp
llviewerwindow.cpp
@@ -904,8 +906,8 @@ set(viewer_HEADER_FILES
llviewerdisplay.h
llviewergenericmessage.h
llviewergesture.h
llviewerimage.h
llviewerimagelist.h
#llviewerimage.h
#llviewerimagelist.h
llviewerinventory.h
llviewerjoint.h
llviewerjointattachment.h
@@ -933,7 +935,9 @@ set(viewer_HEADER_FILES
llviewershadermgr.h
llviewerstats.h
llviewertexteditor.h
llviewertexture.h
llviewertextureanim.h
llviewertexturelist.h
llviewerthrottle.h
llviewervisualparam.h
llviewerwindow.h

View File

@@ -68,17 +68,6 @@
<key>Value</key>
<real>2.0</real>
</map>
<key>SHHighResSnapshotForceTile</key>
<map>
<key>Comment</key>
<string>Force tiling of snapshots (enables AA and supersampling)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>SHHighResSnapshotSuperSample</key>
<map>
<key>Comment</key>

View File

@@ -5,6 +5,8 @@
* $License$
*/
#version 120
uniform sampler2D diffuseMap;
uniform float glowStrength;

View File

@@ -5,6 +5,8 @@
* $License$
*/
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect RenderTexture;
uniform float bloomStrength;

View File

@@ -5,6 +5,8 @@
* $License$
*/
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect RenderTexture;
uniform float brightness;
uniform float contrast;

View File

@@ -5,6 +5,8 @@
* $License$
*/
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect RenderTexture;
uniform float extractLow;
uniform float extractHigh;

View File

@@ -1,3 +1,6 @@
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect RenderTexture;
uniform int horizontalPass;

View File

@@ -4,6 +4,8 @@
* Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
* $License$
*/
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect RenderTexture;
uniform sampler2D NoiseTexture;

View File

@@ -5,6 +5,8 @@
* $License$
*/
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect RenderTexture;
void main(void)

View File

@@ -141,7 +141,7 @@ BOOL DOFloaterHex::postBuild(void)
// static
void DOFloaterHex::imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,
@@ -179,7 +179,7 @@ void DOFloaterHex::imageCallback(BOOL success,
}
else
{
src_vi->setBoostLevel(LLViewerImageBoostLevel::BOOST_UI);
src_vi->setBoostLevel(LLViewerTexture::BOOST_UI);
}
}

View File

@@ -7,7 +7,7 @@
#include "llfloater.h"
#include "dohexeditor.h"
#include "llinventory.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#include "llassettype.h"
class DOFloaterHex
@@ -19,7 +19,7 @@ public:
BOOL postBuild(void);
void close(bool app_quitting);
static void imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,

View File

@@ -53,7 +53,7 @@ this feature is still a work in progress.
/* misc headers */
#include <time.h>
#include <ctime>
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerobjectlist.h"
#include "llfilepicker.h"
#include "llviewermenufile.h"
@@ -129,16 +129,16 @@ LocalBitmap::LocalBitmap(std::string fullpath)
LLImageRaw* raw_image = new LLImageRaw();
if ( this->decodeSelf(raw_image) )
{
/* creating a shell LLViewerImage and fusing raw image into it */
LLViewerImage* viewer_image = new LLViewerImage( "file://"+this->filename, this->id, LOCAL_USE_MIPMAPS );
/* creating a shell LLViewerTexture and fusing raw image into it */
LLViewerFetchedTexture* viewer_image = new LLViewerFetchedTexture( "file://"+this->filename, this->id, LOCAL_USE_MIPMAPS );
viewer_image->createGLTexture( LOCAL_DISCARD_LEVEL, raw_image );
viewer_image->mCachedRawImage = raw_image;
viewer_image->setCachedRawImage(-1,raw_image);
/* making damn sure gImageList will not delete it prematurely */
/* making damn sure gTextureList will not delete it prematurely */
viewer_image->ref();
/* finalizing by adding LLViewerImage instance into gImageList */
gImageList.addImage(viewer_image);
/* finalizing by adding LLViewerTexture instance into gTextureList */
gTextureList.addImage(viewer_image);
/* filename is valid, bitmap is decoded and valid, i can haz liftoff! */
this->valid = true;
@@ -172,12 +172,12 @@ void LocalBitmap::updateSelf()
if ( !decodeSelf(new_imgraw) ) { this->linkstatus = LINK_UPDATING; return; }
else { this->linkstatus = LINK_ON; }
LLViewerImage* image = gImageList.hasImage(this->id);
LLViewerFetchedTexture* image = gTextureList.findImage(this->id);
if (!image->mForSculpt)
if (!image->forSculpt())
{ image->createGLTexture( LOCAL_DISCARD_LEVEL, new_imgraw ); }
else
{ image->mCachedRawImage = new_imgraw; }
{ image->setCachedRawImage(-1,new_imgraw); }
/* finalizing by updating lastmod to current */
this->last_modified = new_last_modified;
@@ -222,7 +222,7 @@ bool LocalBitmap::decodeSelf(LLImageRaw* rawimg)
if ( !bmp_image->load(filename) ) { break; }
if ( !bmp_image->decode(rawimg, 0.0f) ) { break; }
rawimg->biasedScaleToPowerOfTwo( LLViewerImage::MAX_IMAGE_SIZE_DEFAULT );
rawimg->biasedScaleToPowerOfTwo( LLViewerTexture::MAX_IMAGE_SIZE_DEFAULT );
return true;
}
@@ -235,7 +235,7 @@ bool LocalBitmap::decodeSelf(LLImageRaw* rawimg)
if( ( tga_image->getComponents() != 3) &&
( tga_image->getComponents() != 4) ) { break; }
rawimg->biasedScaleToPowerOfTwo( LLViewerImage::MAX_IMAGE_SIZE_DEFAULT );
rawimg->biasedScaleToPowerOfTwo( LLViewerTexture::MAX_IMAGE_SIZE_DEFAULT );
return true;
}
@@ -245,7 +245,7 @@ bool LocalBitmap::decodeSelf(LLImageRaw* rawimg)
if ( !jpeg_image->load(filename) ) { break; }
if ( !jpeg_image->decode(rawimg, 0.0f) ) { break; }
rawimg->biasedScaleToPowerOfTwo( LLViewerImage::MAX_IMAGE_SIZE_DEFAULT );
rawimg->biasedScaleToPowerOfTwo( LLViewerTexture::MAX_IMAGE_SIZE_DEFAULT );
return true;
}
@@ -255,7 +255,7 @@ bool LocalBitmap::decodeSelf(LLImageRaw* rawimg)
if ( !png_image->load(filename) ) { break; }
if ( !png_image->decode(rawimg, 0.0f) ) { break; }
rawimg->biasedScaleToPowerOfTwo( LLViewerImage::MAX_IMAGE_SIZE_DEFAULT );
rawimg->biasedScaleToPowerOfTwo( LLViewerTexture::MAX_IMAGE_SIZE_DEFAULT );
return true;
}
@@ -493,8 +493,8 @@ void LocalAssetBrowser::DelBitmap( std::vector<LLScrollListItem*> delete_vector,
if ( unit->getID() == id )
{
LLViewerImage* image = gImageList.hasImage(id);
gImageList.deleteImage( image );
LLViewerFetchedTexture* image = gTextureList.findImage(id);
gTextureList.deleteImage( image );
image->unref();
iter = loaded_bitmaps.erase(iter);
@@ -685,7 +685,7 @@ void LocalAssetBrowser::PerformSculptUpdates(LocalBitmap* unit)
// update code [begin]
if ( unit->volume_dirty )
{
LLImageRaw* rawimage = gImageList.hasImage( unit->getID() )->getCachedRawImage();
LLImageRaw* rawimage = gTextureList.findImage( unit->getID() )->getCachedRawImage();
aobj.object->getVolume()->sculpt(rawimage->getWidth(), rawimage->getHeight(),
rawimage->getComponents(), rawimage->getData(), 0);

View File

@@ -55,7 +55,7 @@
#include "llvoavatar.h"
#include "pipeline.h"
#include "lluictrlfactory.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llstring.h"
#include "llviewercontrol.h"
@@ -157,8 +157,8 @@ LLFloaterSculptPreview::~LLFloaterSculptPreview()
clearAllPreviewTextures();
mRawImagep = NULL;
delete mAvatarPreview;
delete mSculptedPreview;
mAvatarPreview = NULL;
mSculptedPreview = NULL;
mImagep = NULL ;
}
@@ -267,10 +267,9 @@ void LLFloaterSculptPreview::draw()
}
else
{
mImagep = new LLImageGL(mRawImagep, FALSE) ;
mImagep = LLViewerTextureManager::getLocalTexture(mRawImagep.get(), FALSE) ;
gGL.getTexUnit(0)->unbind(mImagep->getTarget()) ;
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
gGL.getTexUnit(0)->bind(mImagep);
stop_glerror();
gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR);
@@ -309,11 +308,11 @@ void LLFloaterSculptPreview::draw()
if (selected == 9)
{
gGL.getTexUnit(0)->bind(mSculptedPreview->getTexture());
gGL.getTexUnit(0)->bind(mSculptedPreview);
}
else
{
gGL.getTexUnit(0)->bind(mAvatarPreview->getTexture());
gGL.getTexUnit(0)->bind(mAvatarPreview);
}
gGL.begin( LLRender::QUADS );
@@ -513,7 +512,7 @@ void LLFloaterSculptPreview::onMouseCaptureLostImagePreview(LLMouseHandler* hand
//-----------------------------------------------------------------------------
// LLPreviewAvatar
//-----------------------------------------------------------------------------
LLPreviewAvatar::LLPreviewAvatar(S32 width, S32 height) : LLDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
LLPreviewAvatar::LLPreviewAvatar(S32 width, S32 height) : LLViewerDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
{
mNeedsUpdate = TRUE;
mTargetJoint = NULL;
@@ -603,7 +602,7 @@ BOOL LLPreviewAvatar::render()
glMatrixMode(GL_PROJECTION);
gGL.pushMatrix();
glLoadIdentity();
glOrtho(0.0f, mWidth, 0.0f, mHeight, -1.0f, 1.0f);
glOrtho(0.0f, mFullWidth, 0.0f, mFullHeight, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
gGL.pushMatrix();
@@ -612,7 +611,7 @@ BOOL LLPreviewAvatar::render()
LLGLSUIDefault def;
gGL.color4f(0.15f, 0.2f, 0.3f, 1.f);
gl_rect_2d_simple( mWidth, mHeight );
gl_rect_2d_simple( mFullWidth, mFullHeight );
glMatrixMode(GL_PROJECTION);
gGL.popMatrix();
@@ -634,9 +633,9 @@ BOOL LLPreviewAvatar::render()
stop_glerror();
LLViewerCamera::getInstance()->setAspect((F32)mWidth / mHeight);
LLViewerCamera::getInstance()->setAspect((F32)mFullWidth / mFullHeight);
LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / mCameraZoom);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mWidth, mHeight, FALSE);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight, FALSE);
LLVertexBuffer::unbind();
avatarp->updateLOD();
@@ -694,7 +693,7 @@ void LLPreviewAvatar::pan(F32 right, F32 up)
// LLPreviewSculpted
//-----------------------------------------------------------------------------
LLPreviewSculpted::LLPreviewSculpted(S32 width, S32 height) : LLDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
LLPreviewSculpted::LLPreviewSculpted(S32 width, S32 height) : LLViewerDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
{
mNeedsUpdate = TRUE;
mCameraDistance = 0.f;
@@ -777,7 +776,7 @@ BOOL LLPreviewSculpted::render()
glMatrixMode(GL_PROJECTION);
gGL.pushMatrix();
glLoadIdentity();
glOrtho(0.0f, mWidth, 0.0f, mHeight, -1.0f, 1.0f);
glOrtho(0.0f, mFullWidth, 0.0f, mFullHeight, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
gGL.pushMatrix();
@@ -785,7 +784,7 @@ BOOL LLPreviewSculpted::render()
gGL.color4f(1.f, 1.f, 1.f, 1.f);
gl_rect_2d_simple( mWidth, mHeight );
gl_rect_2d_simple( mFullWidth, mFullHeight );
glMatrixMode(GL_PROJECTION);
gGL.popMatrix();
@@ -808,9 +807,9 @@ BOOL LLPreviewSculpted::render()
stop_glerror();
LLViewerCamera::getInstance()->setAspect((F32) mWidth / mHeight);
LLViewerCamera::getInstance()->setAspect((F32) mFullWidth / mFullHeight);
LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / mCameraZoom);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mWidth, mHeight, FALSE);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight, FALSE);
const LLVolumeFace &vf = mVolume->getVolumeFace(0);
U32 num_indices = vf.mIndices.size();

View File

@@ -46,7 +46,7 @@ class LLVOAvatar;
class LLTextBox;
class LLVertexBuffer;
class LLPreviewSculpted : public LLDynamicTexture
class LLPreviewSculpted : public LLViewerDynamicTexture
{
public:
LLPreviewSculpted(S32 width, S32 height);
@@ -75,7 +75,7 @@ class LLPreviewSculpted : public LLDynamicTexture
};
class LLPreviewAvatar : public LLDynamicTexture
class LLPreviewAvatar : public LLViewerDynamicTexture
{
public:
LLPreviewAvatar(S32 width, S32 height);
@@ -129,13 +129,13 @@ protected:
bool loadImage(LLImageRaw* src);
LLPointer<LLImageRaw> mRawImagep;
LLPreviewAvatar* mAvatarPreview;
LLPreviewSculpted* mSculptedPreview;
LLPointer<LLPreviewAvatar> mAvatarPreview;
LLPointer<LLPreviewSculpted> mSculptedPreview;
S32 mLastMouseX;
S32 mLastMouseY;
LLRect mPreviewRect;
LLRectf mPreviewImageRect;
LLPointer<LLImageGL> mImagep ;
LLPointer<LLViewerTexture> mImagep ;
LLViewerObject* tmpvolume;
static S32 sUploadAmount;

View File

@@ -102,7 +102,7 @@ BOOL HGFloaterTextEditor::postBuild(void)
// static
void HGFloaterTextEditor::imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,
@@ -141,7 +141,7 @@ void HGFloaterTextEditor::imageCallback(BOOL success,
}
else
{
src_vi->setBoostLevel(LLViewerImageBoostLevel::BOOST_UI);
src_vi->setBoostLevel(LLViewerTexture::BOOST_UI);
}
}

View File

@@ -14,7 +14,7 @@
#include "llfloater.h"
#include "lltexteditor.h"
#include "llinventory.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
class HGFloaterTextEditor
: public LLFloater
@@ -25,7 +25,7 @@ public:
BOOL postBuild(void);
void close(bool app_quitting);
static void imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,

View File

@@ -44,7 +44,7 @@
#include "lltexteditor.h"
#include "llalertdialog.h"
#include "llerrorcontrol.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llgroupmgr.h"
#include "llagent.h"
#include "llwindow.h"
@@ -652,7 +652,8 @@ bool LLAppViewer::init()
&gColors,
LLUIImageList::getInstance(),
ui_audio_callback,
&LLUI::sGLScaleFactor);
&LLUI::sGLScaleFactor
);
LLWeb::initClass(); // do this after LLUI
LLTextEditor::setURLCallbacks(&LLWeb::loadURL,
@@ -1425,12 +1426,12 @@ bool LLAppViewer::cleanup()
sImageDecodeThread = NULL;
//Note:
//LLViewerMedia::cleanupClass() has to be put before gImageList.shutdown()
//LLViewerMedia::cleanupClass() has to be put before gTextureList.shutdown()
//because some new image might be generated during cleaning up media. --bao
LLViewerMediaFocus::cleanupClass();
LLViewerMedia::cleanupClass();
LLViewerParcelMedia::cleanupClass();
gImageList.shutdown(); // shutdown again in case a callback added something
gTextureList.shutdown(); // shutdown again in case a callback added something
LLUIImageList::getInstance()->cleanUp();
// This should eventually be done in LLAppViewer

View File

@@ -4,7 +4,7 @@
#include "llapr.h"
#include "llvfile.h"
#include "llassetconverter.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llvorbisencode.h"
#include "llbvhloader.h"
// static
@@ -18,7 +18,7 @@ LLAssetType::EType LLAssetConverter::convert(std::string src_filename, std::stri
else if(exten == "bmp")
{
asset_type = LLAssetType::AT_TEXTURE;
if (!LLViewerImageList::createUploadFile(src_filename,
if (!LLViewerTextureList::createUploadFile(src_filename,
filename,
IMG_CODEC_BMP ))
{
@@ -28,7 +28,7 @@ LLAssetType::EType LLAssetConverter::convert(std::string src_filename, std::stri
else if( exten == "tga")
{
asset_type = LLAssetType::AT_TEXTURE;
if (!LLViewerImageList::createUploadFile(src_filename,
if (!LLViewerTextureList::createUploadFile(src_filename,
filename,
IMG_CODEC_TGA ))
{
@@ -38,7 +38,7 @@ LLAssetType::EType LLAssetConverter::convert(std::string src_filename, std::stri
else if( exten == "jpg" || exten == "jpeg")
{
asset_type = LLAssetType::AT_TEXTURE;
if (!LLViewerImageList::createUploadFile(src_filename,
if (!LLViewerTextureList::createUploadFile(src_filename,
filename,
IMG_CODEC_JPEG ))
{
@@ -48,7 +48,7 @@ LLAssetType::EType LLAssetConverter::convert(std::string src_filename, std::stri
else if( exten == "png")
{
asset_type = LLAssetType::AT_TEXTURE;
if (!LLViewerImageList::createUploadFile(src_filename,
if (!LLViewerTextureList::createUploadFile(src_filename,
filename,
IMG_CODEC_PNG ))
{

View File

@@ -48,7 +48,7 @@
#include "lltextbox.h"
#include "llfloatercolorpicker.h"
#include "llviewborder.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llfocusmgr.h"
static LLRegisterWidget<LLColorSwatchCtrl> r("color_swatch");
@@ -236,7 +236,7 @@ void LLColorSwatchCtrl::draw()
{
if (!mFallbackImageName.empty())
{
LLPointer<LLViewerImage> fallback_image = gImageList.getImageFromFile(mFallbackImageName);
LLPointer<LLViewerFetchedTexture> fallback_image = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName);
if( fallback_image->getComponents() == 4 )
{
gl_rect_2d_checkerboard( interior );

View File

@@ -36,7 +36,7 @@
#include "lluictrl.h"
#include "v4color.h"
#include "llfloater.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
//
// Classes
@@ -44,7 +44,6 @@
class LLColor4;
class LLTextBox;
class LLFloaterColorPicker;
class LLViewerImage;
class LLColorSwatchCtrl
: public LLUICtrl

View File

@@ -43,8 +43,7 @@
#include "llagent.h"
#include "llcompass.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewercontrol.h"
#include "llviewercamera.h"
@@ -76,12 +75,12 @@ LLCompass::LLCompass( const std::string& name, const LLRect& rect)
void LLCompass::setTexture(LLUUID image_id)
{
mTexture = gImageList.getImage(image_id, FALSE, TRUE);
mTexture = LLViewerTextureManager::getFetchedTexture(image_id, FALSE, LLViewerTexture::BOOST_UI);
}
void LLCompass::setBkgndTexture(LLUUID image_id)
{
mBkgndTexture = gImageList.getImage(image_id, FALSE, TRUE);
mBkgndTexture = LLViewerTextureManager::getFetchedTexture(image_id, FALSE, LLViewerTexture::BOOST_UI);
}
//
@@ -107,5 +106,5 @@ LLHorizontalCompass::LLHorizontalCompass( const std::string& name, const LLRect&
void LLHorizontalCompass::setTexture( const LLUUID& image_id )
{
mTexture = gImageList.getImage(image_id, FALSE, TRUE);
mTexture = LLViewerTextureManager::getFetchedTexture(image_id, FALSE, LLViewerTexture::BOOST_UI);
}

View File

@@ -35,7 +35,7 @@
#include "llmath.h"
#include "llview.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#ifndef LL_V4COLOR_H
#include "v4color.h"
#endif
@@ -43,8 +43,8 @@
class LLCompass : public LLView
{
protected:
LLPointer<LLViewerImage> mTexture;
LLPointer<LLViewerImage> mBkgndTexture;
LLPointer<LLViewerTexture> mTexture;
LLPointer<LLViewerTexture> mBkgndTexture;
public:
LLCompass( const std::string& name, const LLRect& rect);
@@ -77,7 +77,7 @@ class LLHorizontalCompass : public LLView
{
protected:
LLColor4 mFocusColor;
LLPointer<LLViewerImage> mTexture;
LLPointer<LLViewerTexture> mTexture;
public:
LLHorizontalCompass( const std::string& name, const LLRect& rect,

View File

@@ -41,8 +41,7 @@
#include "llfontgl.h"
#include "llgl.h"
#include "llui.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerwindow.h"
#include "lltextparser.h"
#include "llsd.h"

View File

@@ -90,7 +90,7 @@ LLDebugView::LLDebugView(const std::string& name, const LLRect &rect)
mMemoryView->setVisible(FALSE); // start invisible
addChild(mMemoryView);
r.set(150, rect.getHeight() - 50, 820, 100);
r.set(150, rect.getHeight() - 50, 870, 100);
gTextureView = new LLTextureView("gTextureView", r);
gTextureView->setRect(r);
gTextureView->setFollowsBottom();

View File

@@ -229,7 +229,7 @@ S32 LLDrawable::findReferences(LLDrawable *drawablep)
return count;
}
LLFace* LLDrawable::addFace(LLFacePool *poolp, LLViewerImage *texturep)
LLFace* LLDrawable::addFace(LLFacePool *poolp, LLViewerTexture *texturep)
{
LLMemType mt(LLMemType::MTYPE_DRAWABLE);
@@ -253,7 +253,7 @@ LLFace* LLDrawable::addFace(LLFacePool *poolp, LLViewerImage *texturep)
return face;
}
LLFace* LLDrawable::addFace(const LLTextureEntry *te, LLViewerImage *texturep)
LLFace* LLDrawable::addFace(const LLTextureEntry *te, LLViewerTexture *texturep)
{
LLMemType mt(LLMemType::MTYPE_DRAWABLE);
@@ -275,7 +275,7 @@ LLFace* LLDrawable::addFace(const LLTextureEntry *te, LLViewerImage *texturep)
}
void LLDrawable::setNumFaces(const S32 newFaces, LLFacePool *poolp, LLViewerImage *texturep)
void LLDrawable::setNumFaces(const S32 newFaces, LLFacePool *poolp, LLViewerTexture *texturep)
{
if (newFaces == (S32)mFaces.size())
{
@@ -298,7 +298,7 @@ void LLDrawable::setNumFaces(const S32 newFaces, LLFacePool *poolp, LLViewerImag
llassert_always(mFaces.size() == newFaces);
}
void LLDrawable::setNumFacesFast(const S32 newFaces, LLFacePool *poolp, LLViewerImage *texturep)
void LLDrawable::setNumFacesFast(const S32 newFaces, LLFacePool *poolp, LLViewerTexture *texturep)
{
if (newFaces <= (S32)mFaces.size() && newFaces >= (S32)mFaces.size()/2)
{

View File

@@ -59,7 +59,7 @@ class LLSpatialGroup;
class LLSpatialBridge;
class LLSpatialPartition;
class LLVOVolume;
class LLViewerImage;
class LLViewerTexture;
// Can have multiple silhouettes for each object
const U32 SILHOUETTE_HIGHLIGHT = 0;
@@ -127,11 +127,11 @@ public:
inline S32 getNumFaces() const;
//void removeFace(const S32 i); // SJB: Avoid using this, it's slow
LLFace* addFace(LLFacePool *poolp, LLViewerImage *texturep);
LLFace* addFace(const LLTextureEntry *te, LLViewerImage *texturep);
LLFace* addFace(LLFacePool *poolp, LLViewerTexture *texturep);
LLFace* addFace(const LLTextureEntry *te, LLViewerTexture *texturep);
void deleteFaces(S32 offset, S32 count);
void setNumFaces(const S32 numFaces, LLFacePool *poolp, LLViewerImage *texturep);
void setNumFacesFast(const S32 numFaces, LLFacePool *poolp, LLViewerImage *texturep);
void setNumFaces(const S32 numFaces, LLFacePool *poolp, LLViewerTexture *texturep);
void setNumFacesFast(const S32 numFaces, LLFacePool *poolp, LLViewerTexture *texturep);
void mergeFaces(LLDrawable* src);
void init();

View File

@@ -60,7 +60,7 @@ S32 LLDrawPool::sNumDrawPools = 0;
//=============================
// Draw Pool Implementation
//=============================
LLDrawPool *LLDrawPool::createPool(const U32 type, LLViewerImage *tex0)
LLDrawPool *LLDrawPool::createPool(const U32 type, LLViewerTexture *tex0)
{
LLDrawPool *poolp = NULL;
switch (type)
@@ -130,7 +130,7 @@ LLDrawPool::~LLDrawPool()
}
LLViewerImage *LLDrawPool::getDebugTexture()
LLViewerTexture *LLDrawPool::getDebugTexture()
{
return NULL;
}
@@ -245,7 +245,7 @@ void LLFacePool::destroy()
}
}
void LLFacePool::dirtyTextures(const std::set<LLViewerImage*>& textures)
void LLFacePool::dirtyTextures(const std::set<LLViewerFetchedTexture*>& textures)
{
}
@@ -297,7 +297,7 @@ void LLFacePool::drawLoop()
}
void LLFacePool::renderFaceSelected(LLFace *facep,
LLImageGL *image,
LLViewerTexture *image,
const LLColor4 &color,
const S32 index_offset, const S32 index_count)
{
@@ -331,7 +331,7 @@ void LLFacePool::resetDrawOrders()
mDrawFace.resize(0);
}
LLViewerImage *LLFacePool::getTexture()
LLViewerTexture *LLFacePool::getTexture()
{
return NULL;
}

View File

@@ -39,8 +39,8 @@
#include "llvertexbuffer.h"
class LLFace;
class LLImageGL;
class LLViewerImage;
class LLViewerTexture;
class LLViewerFetchedTexture;
class LLSpatialGroup;
class LLDrawInfo;
@@ -78,7 +78,7 @@ public:
S32 getId() const { return mId; }
U32 getType() const { return mType; }
virtual LLViewerImage *getDebugTexture();
virtual LLViewerTexture *getDebugTexture();
virtual void beginRenderPass( S32 pass );
virtual void endRenderPass( S32 pass );
virtual S32 getNumPasses();
@@ -104,9 +104,9 @@ public:
virtual BOOL verify() const { return TRUE; } // Verify that all data in the draw pool is correct!
virtual S32 getVertexShaderLevel() const { return mVertexShaderLevel; }
static LLDrawPool* createPool(const U32 type, LLViewerImage *tex0 = NULL);
static LLDrawPool* createPool(const U32 type, LLViewerTexture *tex0 = NULL);
virtual LLDrawPool *instancePool() = 0; // Create an empty new instance of the pool.
virtual LLViewerImage* getTexture() = 0;
virtual LLViewerTexture* getTexture() = 0;
virtual BOOL isFacePool() { return FALSE; }
virtual void resetDrawOrders() = 0;
@@ -140,8 +140,8 @@ public:
LLRenderPass(const U32 type);
virtual ~LLRenderPass();
/*virtual*/ LLDrawPool* instancePool();
/*virtual*/ LLViewerImage* getDebugTexture() { return NULL; }
LLViewerImage* getTexture() { return NULL; }
/*virtual*/ LLViewerTexture* getDebugTexture() { return NULL; }
LLViewerTexture* getTexture() { return NULL; }
BOOL isDead() { return FALSE; }
void resetDrawOrders() { }
@@ -170,11 +170,11 @@ public:
virtual void renderForSelect() = 0;
BOOL isDead() { return mReferences.empty(); }
virtual void renderFaceSelected(LLFace *facep, LLImageGL *image, const LLColor4 &color,
virtual void renderFaceSelected(LLFace *facep, LLViewerTexture *image, const LLColor4 &color,
const S32 index_offset = 0, const S32 index_count = 0);
virtual LLViewerImage *getTexture();
virtual void dirtyTextures(const std::set<LLViewerImage*>& textures);
virtual LLViewerTexture *getTexture();
virtual void dirtyTextures(const std::set<LLViewerFetchedTexture*>& textures);
virtual void enqueue(LLFace *face);
virtual BOOL addFace(LLFace *face);

View File

@@ -46,7 +46,7 @@
#include "lldrawable.h"
#include "llface.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h" // For debugging
#include "llviewertexturelist.h" // For debugging
#include "llviewerobjectlist.h" // For debugging
#include "llviewerwindow.h"
#include "pipeline.h"
@@ -237,8 +237,8 @@ void LLDrawPoolAlpha::render(S32 pass)
}
gPipeline.enableLightsFullbright(LLColor4(1,1,1,1));
glColor4f(1,0,0,1);
LLViewerImage::sSmokeImagep->addTextureStats(1024.f*1024.f);
gGL.getTexUnit(0)->bind(LLViewerImage::sSmokeImagep.get(), TRUE);
LLViewerFetchedTexture::sSmokeImagep->addTextureStats(1024.f*1024.f);
gGL.getTexUnit(0)->bind(LLViewerFetchedTexture::sSmokeImagep.get(), TRUE);
renderAlphaHighlight(LLVertexBuffer::MAP_VERTEX |
LLVertexBuffer::MAP_TEXCOORD0);
}

View File

@@ -650,7 +650,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
if (pass==1 && (!gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_PARTICLES) || LLViewerPartSim::getMaxPartCount() <= 0))
{
// debug code to draw a sphere in place of avatar
gGL.getTexUnit(0)->bind(LLViewerImage::sWhiteImagep.get());
gGL.getTexUnit(0)->bind(LLViewerFetchedTexture::sWhiteImagep.get());
gGL.setColorMask(true, true);
LLVector3 pos = avatarp->getPositionAgent();
gGL.color4f(1.0f, 1.0f, 1.0f, 0.7f);
@@ -839,7 +839,7 @@ void LLDrawPoolAvatar::renderForSelect()
//-----------------------------------------------------------------------------
// getDebugTexture()
//-----------------------------------------------------------------------------
LLViewerImage *LLDrawPoolAvatar::getDebugTexture()
LLViewerTexture *LLDrawPoolAvatar::getDebugTexture()
{
if (mReferences.empty())
{

View File

@@ -105,7 +105,7 @@ public:
void endDeferredRigid();
void endDeferredSkinned();
/*virtual*/ LLViewerImage *getDebugTexture();
/*virtual*/ LLViewerTexture *getDebugTexture();
/*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display
void renderAvatars(LLVOAvatar *single_avatar, S32 pass = -1); // renders only one avatar if single_avatar is not null.

View File

@@ -37,7 +37,6 @@
#include "llstl.h"
#include "llviewercontrol.h"
#include "lldir.h"
#include "llimagegl.h"
#include "m3math.h"
#include "m4math.h"
#include "v4math.h"
@@ -51,7 +50,7 @@
#include "llsky.h"
#include "lltextureentry.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "pipeline.h"
#include "llspatialpartition.h"
#include "llviewershadermgr.h"
@@ -95,7 +94,16 @@ void LLStandardBumpmap::shutdown()
// static
void LLStandardBumpmap::restoreGL()
{
llassert( LLStandardBumpmap::sStandardBumpmapCount == 0 );
addstandard();
}
// static
void LLStandardBumpmap::addstandard()
{
// can't assert; we destroyGL and restoreGL a lot during *first* startup, which populates this list already, THEN we explicitly init the list as part of *normal* startup. Sigh. So clear the list every time before we (re-)add the standard bumpmaps.
//llassert( LLStandardBumpmap::sStandardBumpmapCount == 0 );
clear();
llinfos << "Adding standard bumpmaps." << llendl;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("None"); // BE_NO_BUMP
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("Brightness"); // BE_BRIGHTNESS
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("Darkness"); // BE_DARKNESS
@@ -127,9 +135,9 @@ void LLStandardBumpmap::restoreGL()
{
// *NOTE: This buffer size is hard coded into scanf() below.
char label[2048] = ""; /* Flawfinder: ignore */
char bump_file[2048] = ""; /* Flawfinder: ignore */
char bump_image_id[2048] = ""; /* Flawfinder: ignore */
fields_read = fscanf( /* Flawfinder: ignore */
file, "\n%2047s %2047s", label, bump_file);
file, "\n%2047s %2047s", label, bump_image_id);
if( EOF == fields_read )
{
break;
@@ -139,16 +147,19 @@ void LLStandardBumpmap::restoreGL()
llwarns << "Bad LLStandardBumpmap entry" << llendl;
return;
}
if(strlen(bump_image_id) == (UUID_STR_LENGTH - 1) + 4 && !stricmp(&(bump_image_id[UUID_STR_LENGTH-1]),".j2c"))
bump_image_id[UUID_STR_LENGTH-1] = 0; // truncate to a valid uuid (hopefully)
// llinfos << "Loading bumpmap: " << bump_file << " from viewerart" << llendl;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mLabel = label;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage =
gImageList.getImageFromFile(bump_file,
LLViewerTextureManager::getFetchedTexture(LLUUID(bump_image_id),
TRUE,
FALSE,
LLViewerTexture::BOOST_NONE,
LLViewerTexture::LOD_TEXTURE,
0,
0);
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL );
0);
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setBoostLevel(LLViewerTexture::BOOST_BUMP) ;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL, NULL );
LLStandardBumpmap::sStandardBumpmapCount++;
}
@@ -156,8 +167,9 @@ void LLStandardBumpmap::restoreGL()
}
// static
void LLStandardBumpmap::destroyGL()
void LLStandardBumpmap::clear()
{
llinfos << "Clearing standard bumpmaps." << llendl;
for( U32 i = 0; i < LLStandardBumpmap::sStandardBumpmapCount; i++ )
{
gStandardBumpmapList[i].mLabel.assign("");
@@ -166,6 +178,12 @@ void LLStandardBumpmap::destroyGL()
sStandardBumpmapCount = 0;
}
// static
void LLStandardBumpmap::destroyGL()
{
clear();
}
////////////////////////////////////////////////////////////////
@@ -570,27 +588,25 @@ void LLDrawPoolBump::renderGroup(LLSpatialGroup* group, U32 type, U32 mask, BOOL
// static
BOOL LLDrawPoolBump::bindBumpMap(LLDrawInfo& params, S32 channel)
{
LLImageGL* bump = NULL;
LLViewerTexture* bump = NULL;
U8 bump_code = params.mBump;
LLViewerImage* tex = params.mTexture;
//Note: texture atlas does not support bump texture now.
LLViewerFetchedTexture* tex = LLViewerTextureManager::staticCastToFetchedTexture(params.mTexture) ;
if(!tex)
{
//if the texture is not a fetched texture
return FALSE;
}
switch( bump_code )
{
case BE_NO_BUMP:
bump = NULL;
case BE_NO_BUMP:
break;
case BE_BRIGHTNESS:
case BE_DARKNESS:
if( tex )
{
if(tex->getID()== IMG_DEFAULT)
{
return TRUE;
}
bump = gBumpImageList.getBrightnessDarknessImage( tex, bump_code );
}
bump = gBumpImageList.getBrightnessDarknessImage( tex, bump_code );
break;
default:
@@ -785,24 +801,32 @@ void LLBumpImageList::init()
LLStandardBumpmap::init();
}
void LLBumpImageList::shutdown()
void LLBumpImageList::clear()
{
llinfos << "Clearing dynamic bumpmaps." << llendl;
// these will be re-populated on-demand
mBrightnessEntries.clear();
mDarknessEntries.clear();
LLStandardBumpmap::clear();
}
void LLBumpImageList::shutdown()
{
clear();
LLStandardBumpmap::shutdown();
}
void LLBumpImageList::destroyGL()
{
mBrightnessEntries.clear();
mDarknessEntries.clear();
clear();
LLStandardBumpmap::destroyGL();
}
void LLBumpImageList::restoreGL()
{
// Images will be recreated as they are needed.
LLStandardBumpmap::restoreGL();
// Images will be recreated as they are needed.
}
@@ -818,9 +842,9 @@ LLBumpImageList::~LLBumpImageList()
void LLBumpImageList::addTextureStats(U8 bump, const LLUUID& base_image_id, F32 virtual_size)
{
bump &= TEM_BUMP_MASK;
LLViewerImage* bump_image = gStandardBumpmapList[bump].mImage;
LLViewerFetchedTexture* bump_image = gStandardBumpmapList[bump].mImage;
if( bump_image )
{
{
bump_image->addTextureStats(virtual_size);
}
}
@@ -832,11 +856,11 @@ void LLBumpImageList::updateImages()
for (bump_image_map_t::iterator iter = mBrightnessEntries.begin(); iter != mBrightnessEntries.end(); )
{
bump_image_map_t::iterator curiter = iter++;
LLImageGL* image = curiter->second;
LLViewerTexture* image = curiter->second;
if( image )
{
BOOL destroy = TRUE;
if( image->getHasGLTexture())
if( image->hasGLTexture())
{
if( image->getBoundRecently() )
{
@@ -859,11 +883,11 @@ void LLBumpImageList::updateImages()
for (bump_image_map_t::iterator iter = mDarknessEntries.begin(); iter != mDarknessEntries.end(); )
{
bump_image_map_t::iterator curiter = iter++;
LLImageGL* image = curiter->second;
LLViewerTexture* image = curiter->second;
if( image )
{
BOOL destroy = TRUE;
if( image->getHasGLTexture())
if( image->hasGLTexture())
{
if( image->getBoundRecently() )
{
@@ -887,16 +911,16 @@ void LLBumpImageList::updateImages()
// Note: the caller SHOULD NOT keep the pointer that this function returns. It may be updated as more data arrives.
LLImageGL* LLBumpImageList::getBrightnessDarknessImage(LLViewerImage* src_image, U8 bump_code )
LLViewerTexture* LLBumpImageList::getBrightnessDarknessImage(LLViewerFetchedTexture* src_image, U8 bump_code )
{
llassert( (bump_code == BE_BRIGHTNESS) || (bump_code == BE_DARKNESS) );
LLImageGL* bump = NULL;
LLViewerTexture* bump = NULL;
const F32 BRIGHTNESS_DARKNESS_PIXEL_AREA_THRESHOLD = 1000;
if( src_image->mMaxVirtualSize > BRIGHTNESS_DARKNESS_PIXEL_AREA_THRESHOLD )
if( src_image->getMaxVirtualSize() > BRIGHTNESS_DARKNESS_PIXEL_AREA_THRESHOLD )
{
bump_image_map_t* entries_list = NULL;
void (*callback_func)( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata ) = NULL;
void (*callback_func)( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata ) = NULL;
switch( bump_code )
{
@@ -923,17 +947,12 @@ LLImageGL* LLBumpImageList::getBrightnessDarknessImage(LLViewerImage* src_image,
LLPointer<LLImageRaw> raw = new LLImageRaw(1,1,1);
raw->clear(0x77, 0x77, 0x77, 0xFF);
//------------------------------
bump = new LLImageGL( raw, TRUE);
//immediately assign bump to a global smart pointer in case some local smart pointer
//accidently releases it.
(*entries_list)[src_image->getID()] = bump;
//------------------------------
bump->setExplicitFormat(GL_ALPHA8, GL_ALPHA);
(*entries_list)[src_image->getID()] = LLViewerTextureManager::getLocalTexture( raw.get(), TRUE);
(*entries_list)[src_image->getID()]->setExplicitFormat(GL_ALPHA8, GL_ALPHA);
// Note: this may create an LLImageGL immediately
src_image->setLoadedCallback( callback_func, 0, TRUE, FALSE, new LLUUID(src_image->getID()) );
src_image->setBoostLevel(LLViewerTexture::BOOST_BUMP) ;
src_image->setLoadedCallback( callback_func, 0, TRUE, FALSE, new LLUUID(src_image->getID()), NULL );
bump = (*entries_list)[src_image->getID()]; // In case callback was called immediately and replaced the image
// bump_total++;
@@ -946,7 +965,7 @@ LLImageGL* LLBumpImageList::getBrightnessDarknessImage(LLViewerImage* src_image,
// static
void LLBumpImageList::onSourceBrightnessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata )
void LLBumpImageList::onSourceBrightnessLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata )
{
LLUUID* source_asset_id = (LLUUID*)userdata;
LLBumpImageList::onSourceLoaded( success, src_vi, src, *source_asset_id, BE_BRIGHTNESS );
@@ -957,7 +976,7 @@ void LLBumpImageList::onSourceBrightnessLoaded( BOOL success, LLViewerImage *src
}
// static
void LLBumpImageList::onSourceDarknessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata )
void LLBumpImageList::onSourceDarknessLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata )
{
LLUUID* source_asset_id = (LLUUID*)userdata;
LLBumpImageList::onSourceLoaded( success, src_vi, src, *source_asset_id, BE_DARKNESS );
@@ -967,14 +986,14 @@ void LLBumpImageList::onSourceDarknessLoaded( BOOL success, LLViewerImage *src_v
}
}
void LLBumpImageList::onSourceStandardLoaded( BOOL success, LLViewerImage* src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata)
void LLBumpImageList::onSourceStandardLoaded( BOOL success, LLViewerFetchedTexture* src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata)
{
if (success && LLPipeline::sRenderDeferred)
{
LLPointer<LLImageRaw> nrm_image = new LLImageRaw(src->getWidth(), src->getHeight(), 4);
generateNormalMapFromAlpha(src, nrm_image);
src_vi->setExplicitFormat(GL_RGBA, GL_RGBA);
src_vi->createGLTexture(0, nrm_image);
src_vi->createGLTexture(src_vi->getDiscardLevel(), nrm_image);
}
}
@@ -1014,8 +1033,8 @@ void LLBumpImageList::generateNormalMapFromAlpha(LLImageRaw* src, LLImageRaw* nr
LLVector3 right = LLVector3(norm_scale, 0, (F32) src_data[(j*resX+rX)*src_cmp+src_cmp-1]-cH);
LLVector3 left = LLVector3(-norm_scale, 0, (F32) src_data[(j*resX+lX)*src_cmp+src_cmp-1]-cH);
LLVector3 up = LLVector3(0, -norm_scale, (F32) src_data[(rY*resX+i)*src_cmp+src_cmp-1]-cH);
LLVector3 down = LLVector3(0, norm_scale, (F32) src_data[(lY*resX+i)*src_cmp+src_cmp-1]-cH);
LLVector3 up = LLVector3(0, -norm_scale, (F32) src_data[(lY*resX+i)*src_cmp+src_cmp-1]-cH);
LLVector3 down = LLVector3(0, norm_scale, (F32) src_data[(rY*resX+i)*src_cmp+src_cmp-1]-cH);
LLVector3 norm = right%down + down%left + left%up + up%right;
@@ -1034,7 +1053,7 @@ void LLBumpImageList::generateNormalMapFromAlpha(LLImageRaw* src, LLImageRaw* nr
}
// static
void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLUUID& source_asset_id, EBumpEffect bump_code )
void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLImageRaw* src, LLUUID& source_asset_id, EBumpEffect bump_code )
{
if( success )
{
@@ -1151,9 +1170,9 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerImage *src_vi, LLIma
}
//---------------------------------------------------
//immediately assign bump to a global smart pointer in case some local smart pointer
//accidently releases it.
LLPointer<LLImageGL> bump = new LLImageGL( TRUE);
// immediately assign bump to a global smart pointer in case some local smart pointer
// accidentally releases it.
LLPointer<LLViewerTexture> bump = LLViewerTextureManager::getLocalTexture( TRUE );
if (!LLPipeline::sRenderDeferred)
{
@@ -1162,8 +1181,8 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerImage *src_vi, LLIma
}
else
{
LLPointer<LLImageRaw> nrm_image = new LLImageRaw(src->getWidth(), src->getHeight(), 4);
generateNormalMapFromAlpha(src, nrm_image);
LLPointer<LLImageRaw> nrm_image = new LLImageRaw(dst_image->getWidth(), dst_image->getHeight(), 4);
generateNormalMapFromAlpha(dst_image, nrm_image);
bump->setExplicitFormat(GL_RGBA, GL_RGBA);
bump->createGLTexture(0, nrm_image);
}
@@ -1226,8 +1245,8 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture)
{
if (params.mTexture.notNull())
{
gGL.getTexUnit(diffuse_channel)->bind(params.mTexture.get());
//params.mTexture->addTextureStats(params.mVSize);
gGL.getTexUnit(diffuse_channel)->bind(params.mTexture) ;
params.mTexture->addTextureStats(params.mVSize);
}
else
{

View File

@@ -41,6 +41,7 @@
class LLImageRaw;
class LLSpatialGroup;
class LLDrawInfo;
class LLViewerFetchedTexture;
class LLDrawPoolBump : public LLRenderPass
{
@@ -110,10 +111,12 @@ public:
LLStandardBumpmap( const std::string& label ) : mLabel(label) {}
std::string mLabel;
LLPointer<LLViewerImage> mImage;
LLPointer<LLViewerFetchedTexture> mImage;
static U32 sStandardBumpmapCount; // Number of valid values in gStandardBumpmapList[]
static void clear();
static void addstandard();
static void init();
static void shutdown();
static void restoreGL();
@@ -135,26 +138,26 @@ public:
void init();
void shutdown();
void clear();
void destroyGL();
void restoreGL();
void updateImages();
LLImageGL* getBrightnessDarknessImage(LLViewerImage* src_image, U8 bump_code);
// LLImageGL* getTestImage();
LLViewerTexture* getBrightnessDarknessImage(LLViewerFetchedTexture* src_image, U8 bump_code);
void addTextureStats(U8 bump, const LLUUID& base_image_id, F32 virtual_size);
static void onSourceBrightnessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
static void onSourceDarknessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
static void onSourceStandardLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
static void onSourceBrightnessLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
static void onSourceDarknessLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
static void onSourceStandardLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
static void generateNormalMapFromAlpha(LLImageRaw* src, LLImageRaw* nrm_image);
private:
static void onSourceLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLUUID& source_asset_id, EBumpEffect bump );
static void onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLImageRaw* src, LLUUID& source_asset_id, EBumpEffect bump );
private:
typedef std::map<LLUUID, LLPointer<LLImageGL> > bump_image_map_t;
typedef std::map<LLUUID, LLPointer<LLViewerTexture> > bump_image_map_t;
bump_image_map_t mBrightnessEntries;
bump_image_map_t mDarknessEntries;
};

View File

@@ -41,7 +41,7 @@
#include "llface.h"
#include "llsky.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
#include "llvosky.h"

View File

@@ -49,7 +49,7 @@
#include "llviewerparceloverlay.h"
#include "llvosurfacepatch.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h" // To get alpha gradients
#include "llviewertexturelist.h" // To get alpha gradients
#include "llworld.h"
#include "pipeline.h"
#include "llviewershadermgr.h"
@@ -62,28 +62,32 @@ S32 LLDrawPoolTerrain::sDetailMode = 1;
F32 LLDrawPoolTerrain::sDetailScale = DETAIL_SCALE;
static LLGLSLShader* sShader = NULL;
LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerImage *texturep) :
LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :
LLFacePool(POOL_TERRAIN),
mTexturep(texturep)
{
// Hack!
sDetailScale = 1.f/gSavedSettings.getF32("RenderTerrainScale");
sDetailMode = gSavedSettings.getS32("RenderTerrainDetail");
mAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient.tga",
TRUE, TRUE, GL_ALPHA8, GL_ALPHA,
mAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient.tga",
TRUE, LLViewerTexture::BOOST_UI,
LLViewerTexture::FETCHED_TEXTURE,
GL_ALPHA8, GL_ALPHA,
LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb"));
//gGL.getTexUnit(0)->bind(mAlphaRampImagep.get());
mAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP);
m2DAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient_2d.j2c",
TRUE, TRUE, GL_ALPHA8, GL_ALPHA,
m2DAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient_2d.j2c",
TRUE, LLViewerTexture::BOOST_UI,
LLViewerTexture::FETCHED_TEXTURE,
GL_ALPHA8, GL_ALPHA,
LLUUID("38b86f85-2575-52a9-a531-23108d8da837"));
//gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
m2DAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP);
mTexturep->setBoostLevel(LLViewerImageBoostLevel::BOOST_TERRAIN);
mTexturep->setBoostLevel(LLViewerTexture::BOOST_TERRAIN);
//gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
}
@@ -170,7 +174,7 @@ void LLDrawPoolTerrain::render(S32 pass)
LLVLComposition *compp = regionp->getComposition();
for (S32 i = 0; i < 4; i++)
{
compp->mDetailTextures[i]->setBoostLevel(LLViewerImageBoostLevel::BOOST_TERRAIN);
compp->mDetailTextures[i]->setBoostLevel(LLViewerTexture::BOOST_TERRAIN);
compp->mDetailTextures[i]->addTextureStats(1024.f*1024.f); // assume large pixel area
}
@@ -290,10 +294,10 @@ void LLDrawPoolTerrain::renderFullShader()
// Hack! Get the region that this draw pool is rendering from!
LLViewerRegion *regionp = mDrawFace[0]->getDrawable()->getVObj()->getRegion();
LLVLComposition *compp = regionp->getComposition();
LLViewerImage *detail_texture0p = compp->mDetailTextures[0];
LLViewerImage *detail_texture1p = compp->mDetailTextures[1];
LLViewerImage *detail_texture2p = compp->mDetailTextures[2];
LLViewerImage *detail_texture3p = compp->mDetailTextures[3];
LLViewerTexture *detail_texture0p = compp->mDetailTextures[0];
LLViewerTexture *detail_texture1p = compp->mDetailTextures[1];
LLViewerTexture *detail_texture2p = compp->mDetailTextures[2];
LLViewerTexture *detail_texture3p = compp->mDetailTextures[3];
LLVector3d region_origin_global = gAgent.getRegion()->getOriginGlobal();
F32 offset_x = (F32)fmod(region_origin_global.mdV[VX], 1.0/(F64)sDetailScale)*sDetailScale;
@@ -364,7 +368,7 @@ void LLDrawPoolTerrain::renderFullShader()
// Alpha Ramp
//
S32 alpha_ramp = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_ALPHARAMP);
gGL.getTexUnit(alpha_ramp)->bind(m2DAlphaRampImagep.get());
gGL.getTexUnit(alpha_ramp)->bind(m2DAlphaRampImagep);
// GL_BLEND disabled by default
drawLoop();
@@ -430,10 +434,10 @@ void LLDrawPoolTerrain::renderFull4TU()
// Hack! Get the region that this draw pool is rendering from!
LLViewerRegion *regionp = mDrawFace[0]->getDrawable()->getVObj()->getRegion();
LLVLComposition *compp = regionp->getComposition();
LLViewerImage *detail_texture0p = compp->mDetailTextures[0];
LLViewerImage *detail_texture1p = compp->mDetailTextures[1];
LLViewerImage *detail_texture2p = compp->mDetailTextures[2];
LLViewerImage *detail_texture3p = compp->mDetailTextures[3];
LLViewerTexture *detail_texture0p = compp->mDetailTextures[0];
LLViewerTexture *detail_texture1p = compp->mDetailTextures[1];
LLViewerTexture *detail_texture2p = compp->mDetailTextures[2];
LLViewerTexture *detail_texture3p = compp->mDetailTextures[3];
LLVector3d region_origin_global = gAgent.getRegion()->getOriginGlobal();
F32 offset_x = (F32)fmod(region_origin_global.mdV[VX], 1.0/(F64)sDetailScale)*sDetailScale;
@@ -528,7 +532,7 @@ void LLDrawPoolTerrain::renderFull4TU()
//
// Stage 1: Generate alpha ramp for detail2/detail3 transition
//
gGL.getTexUnit(1)->bind(m2DAlphaRampImagep.get());
gGL.getTexUnit(1)->bind(m2DAlphaRampImagep);
gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
gGL.getTexUnit(1)->activate();
@@ -560,7 +564,7 @@ void LLDrawPoolTerrain::renderFull4TU()
//
// Stage 3: Generate alpha ramp for detail1/detail2 transition
//
gGL.getTexUnit(3)->bind(m2DAlphaRampImagep.get());
gGL.getTexUnit(3)->bind(m2DAlphaRampImagep);
gGL.getTexUnit(3)->enable(LLTexUnit::TT_TEXTURE);
gGL.getTexUnit(3)->activate();
@@ -631,10 +635,10 @@ void LLDrawPoolTerrain::renderFull2TU()
// Hack! Get the region that this draw pool is rendering from!
LLViewerRegion *regionp = mDrawFace[0]->getDrawable()->getVObj()->getRegion();
LLVLComposition *compp = regionp->getComposition();
LLViewerImage *detail_texture0p = compp->mDetailTextures[0];
LLViewerImage *detail_texture1p = compp->mDetailTextures[1];
LLViewerImage *detail_texture2p = compp->mDetailTextures[2];
LLViewerImage *detail_texture3p = compp->mDetailTextures[3];
LLViewerTexture *detail_texture0p = compp->mDetailTextures[0];
LLViewerTexture *detail_texture1p = compp->mDetailTextures[1];
LLViewerTexture *detail_texture2p = compp->mDetailTextures[2];
LLViewerTexture *detail_texture3p = compp->mDetailTextures[3];
LLVector3d region_origin_global = gAgent.getRegion()->getOriginGlobal();
F32 offset_x = (F32)fmod(region_origin_global.mdV[VX], 1.0/(F64)sDetailScale)*sDetailScale;
@@ -672,7 +676,7 @@ void LLDrawPoolTerrain::renderFull2TU()
//
// Stage 0: Generate alpha ramp for detail0/detail1 transition
//
gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
gGL.getTexUnit(0)->bind(m2DAlphaRampImagep);
glDisable(GL_TEXTURE_GEN_S);
glDisable(GL_TEXTURE_GEN_T);
@@ -710,7 +714,7 @@ void LLDrawPoolTerrain::renderFull2TU()
//
// Stage 0: Generate alpha ramp for detail1/detail2 transition
//
gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
gGL.getTexUnit(0)->bind(m2DAlphaRampImagep);
// Set the texture matrix
glMatrixMode(GL_TEXTURE);
@@ -750,7 +754,7 @@ void LLDrawPoolTerrain::renderFull2TU()
// Stage 0: Generate alpha ramp for detail2/detail3 transition
//
gGL.getTexUnit(0)->activate();
gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
gGL.getTexUnit(0)->bind(m2DAlphaRampImagep);
// Set the texture matrix
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
@@ -823,7 +827,7 @@ void LLDrawPoolTerrain::renderSimple()
gGL.getTexUnit(0)->activate();
gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
gGL.getTexUnit(0)->bind(mTexturep.get());
gGL.getTexUnit(0)->bind(mTexturep);
LLVector3 origin_agent = mDrawFace[0]->getDrawable()->getVObj()->getRegion()->getOriginAgent();
F32 tscale = 1.f/256.f;
@@ -873,7 +877,7 @@ void LLDrawPoolTerrain::renderOwnership()
LLSurface *surfacep = surface_patchp->getSurface();
LLViewerRegion *regionp = surfacep->getRegion();
LLViewerParcelOverlay *overlayp = regionp->getParcelOverlay();
LLImageGL *texturep = overlayp->getTexture();
LLViewerTexture *texturep = overlayp->getTexture();
gGL.getTexUnit(0)->bind(texturep);
@@ -921,9 +925,10 @@ void LLDrawPoolTerrain::renderForSelect()
}
}
void LLDrawPoolTerrain::dirtyTextures(const std::set<LLViewerImage*>& textures)
void LLDrawPoolTerrain::dirtyTextures(const std::set<LLViewerFetchedTexture*>& textures)
{
if (textures.find(mTexturep) != textures.end())
LLViewerFetchedTexture* tex = LLViewerTextureManager::staticCastToFetchedTexture(mTexturep) ;
if (tex && textures.find(tex) != textures.end())
{
for (std::vector<LLFace*>::iterator iter = mReferences.begin();
iter != mReferences.end(); iter++)
@@ -934,12 +939,12 @@ void LLDrawPoolTerrain::dirtyTextures(const std::set<LLViewerImage*>& textures)
}
}
LLViewerImage *LLDrawPoolTerrain::getTexture()
LLViewerTexture *LLDrawPoolTerrain::getTexture()
{
return mTexturep;
}
LLViewerImage *LLDrawPoolTerrain::getDebugTexture()
LLViewerTexture *LLDrawPoolTerrain::getDebugTexture()
{
return mTexturep;
}

View File

@@ -35,9 +35,11 @@
#include "lldrawpool.h"
class LLViewerFetchedTexture;
class LLDrawPoolTerrain : public LLFacePool
{
LLPointer<LLViewerImage> mTexturep;
LLPointer<LLViewerTexture> mTexturep;
public:
enum
{
@@ -53,7 +55,7 @@ public:
virtual U32 getVertexDataMask();
static S32 getDetailMode();
LLDrawPoolTerrain(LLViewerImage *texturep);
LLDrawPoolTerrain(LLViewerTexture *texturep);
virtual ~LLDrawPoolTerrain();
/*virtual*/ LLDrawPool *instancePool();
@@ -73,14 +75,14 @@ public:
/*virtual*/ void beginRenderPass( S32 pass );
/*virtual*/ void endRenderPass( S32 pass );
/*virtual*/ void renderForSelect();
/*virtual*/ void dirtyTextures(const std::set<LLViewerImage*>& textures);
/*virtual*/ LLViewerImage *getTexture();
/*virtual*/ LLViewerImage *getDebugTexture();
/*virtual*/ void dirtyTextures(const std::set<LLViewerFetchedTexture*>& textures);
/*virtual*/ LLViewerTexture *getTexture();
/*virtual*/ LLViewerTexture *getDebugTexture();
/*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display
LLPointer<LLViewerImage> mAlphaRampImagep;
LLPointer<LLViewerImage> m2DAlphaRampImagep;
LLPointer<LLViewerImage> mAlphaNoiseImagep;
LLPointer<LLViewerTexture> mAlphaRampImagep;
LLPointer<LLViewerTexture> m2DAlphaRampImagep;
LLPointer<LLViewerTexture> mAlphaNoiseImagep;
static S32 sDetailMode;
static F32 sDetailScale; // meters per texture

View File

@@ -48,7 +48,7 @@
S32 LLDrawPoolTree::sDiffTex = 0;
static LLGLSLShader* shader = NULL;
LLDrawPoolTree::LLDrawPoolTree(LLViewerImage *texturep) :
LLDrawPoolTree::LLDrawPoolTree(LLViewerTexture *texturep) :
LLFacePool(POOL_TREE),
mTexturep(texturep)
{
@@ -380,12 +380,12 @@ BOOL LLDrawPoolTree::verify() const
return TRUE;
}
LLViewerImage *LLDrawPoolTree::getTexture()
LLViewerTexture *LLDrawPoolTree::getTexture()
{
return mTexturep;
}
LLViewerImage *LLDrawPoolTree::getDebugTexture()
LLViewerTexture *LLDrawPoolTree::getDebugTexture()
{
return mTexturep;
}

View File

@@ -37,7 +37,7 @@
class LLDrawPoolTree : public LLFacePool
{
LLPointer<LLViewerImage> mTexturep;
LLPointer<LLViewerTexture> mTexturep;
public:
enum
{
@@ -48,7 +48,7 @@ public:
virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; }
LLDrawPoolTree(LLViewerImage *texturep);
LLDrawPoolTree(LLViewerTexture *texturep);
/*virtual*/ LLDrawPool *instancePool();
@@ -70,8 +70,8 @@ public:
/*virtual*/ S32 getNumPasses() { return 1; }
/*virtual*/ void renderForSelect();
/*virtual*/ BOOL verify() const;
/*virtual*/ LLViewerImage *getTexture();
/*virtual*/ LLViewerImage *getDebugTexture();
/*virtual*/ LLViewerTexture *getTexture();
/*virtual*/ LLViewerTexture *getDebugTexture();
/*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display
static S32 sDiffTex;

View File

@@ -46,7 +46,7 @@
#include "llface.h"
#include "llsky.h"
#include "llviewercamera.h" // to get OGL_TO_CFR_ROTATION
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerregion.h"
#include "llvosky.h"
#include "llvowater.h"
@@ -70,18 +70,20 @@ LLVector3 LLDrawPoolWater::sLightDir;
LLDrawPoolWater::LLDrawPoolWater() :
LLFacePool(POOL_WATER)
{
mHBTex[0] = gImageList.getImage(gSunTextureID, TRUE, TRUE);
gGL.getTexUnit(0)->bind(mHBTex[0].get());
mHBTex[0] = LLViewerTextureManager::getFetchedTexture(gSunTextureID, TRUE, LLViewerTexture::BOOST_UI);
gGL.getTexUnit(0)->bind(mHBTex[0]) ;
mHBTex[0]->setAddressMode(LLTexUnit::TAM_CLAMP);
mHBTex[1] = gImageList.getImage(gMoonTextureID, TRUE, TRUE);
gGL.getTexUnit(0)->bind(mHBTex[1].get());
mHBTex[1] = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, TRUE, LLViewerTexture::BOOST_UI);
gGL.getTexUnit(0)->bind(mHBTex[1]);
mHBTex[1]->setAddressMode(LLTexUnit::TAM_CLAMP);
mWaterImagep = gImageList.getImage(WATER_TEST);
mWaterImagep = LLViewerTextureManager::getFetchedTexture(WATER_TEST);
llassert(mWaterImagep);
mWaterImagep->setNoDelete() ;
mWaterNormp = gImageList.getImage(DEFAULT_WATER_NORMAL);
mWaterNormp->setNoDelete() ;
mWaterNormp = LLViewerTextureManager::getFetchedTexture(DEFAULT_WATER_NORMAL);
mWaterNormp->setNoDelete();
restoreGL();
}
@@ -198,7 +200,7 @@ void LLDrawPoolWater::render(S32 pass)
mWaterImagep->addTextureStats(1024.f*1024.f);
gGL.getTexUnit(1)->activate();
gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
gGL.getTexUnit(1)->bind(mWaterImagep.get());
gGL.getTexUnit(1)->bind(mWaterImagep) ;
LLVector3 camera_up = LLViewerCamera::getInstance()->getUpAxis();
F32 up_dot = camera_up * LLVector3::z_axis;
@@ -343,7 +345,7 @@ void LLDrawPoolWater::renderReflection(LLFace* face)
LLGLSNoFog noFog;
gGL.getTexUnit(0)->bind(mHBTex[dr].get());
gGL.getTexUnit(0)->bind(mHBTex[dr]);
LLOverrideFaceColor override(this, face->getFaceColor().mV);
face->renderIndexed();
@@ -445,11 +447,11 @@ void LLDrawPoolWater::shade()
// change mWaterNormp if needed
if (mWaterNormp->getID() != param_mgr->getNormalMapID())
{
mWaterNormp = gImageList.getImage(param_mgr->getNormalMapID());
mWaterNormp = LLViewerTextureManager::getFetchedTexture(param_mgr->getNormalMapID());
}
mWaterNormp->addTextureStats(1024.f*1024.f);
gGL.getTexUnit(bumpTex)->bind(mWaterNormp.get());
gGL.getTexUnit(bumpTex)->bind(mWaterNormp) ;
if (gSavedSettings.getBOOL("RenderWaterMipNormal"))
{
mWaterNormp->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);
@@ -552,7 +554,8 @@ void LLDrawPoolWater::shade()
}
LLVOWater* water = (LLVOWater*) face->getViewerObject();
gGL.getTexUnit(diffTex)->bind(face->getTexture());
if(diffTex > -1 && face->getTexture()->hasGLTexture())
gGL.getTexUnit(diffTex)->bind(face->getTexture());
sNeedsReflectionUpdate = TRUE;
@@ -570,6 +573,8 @@ void LLDrawPoolWater::shade()
LLGLSquashToFarClip far_clip(glh_get_current_projection());
face->renderIndexed();
}
if(diffTex > -1 && face->getTexture()->hasGLTexture())
gGL.getTexUnit(diffTex)->unbind(LLTexUnit::TT_TEXTURE);
}
}
@@ -606,7 +611,7 @@ void LLDrawPoolWater::renderForSelect()
void LLDrawPoolWater::renderFaceSelected(LLFace *facep,
LLImageGL *image,
LLViewerTexture *image,
const LLColor4 &color,
const S32 index_offset, const S32 index_count)
{
@@ -615,9 +620,9 @@ void LLDrawPoolWater::renderFaceSelected(LLFace *facep,
}
LLViewerImage *LLDrawPoolWater::getDebugTexture()
LLViewerTexture *LLDrawPoolWater::getDebugTexture()
{
return LLViewerImage::sSmokeImagep;
return LLViewerFetchedTexture::sSmokeImagep;
}
LLColor3 LLDrawPoolWater::getDebugColor() const

View File

@@ -43,11 +43,10 @@ class LLWaterSurface;
class LLDrawPoolWater: public LLFacePool
{
protected:
LLPointer<LLViewerImage> mHBTex[2];
LLPointer<LLViewerImage> mWaterImagep;
LLPointer<LLViewerImage> mWaterNormp;
LLPointer<LLViewerTexture> mHBTex[2];
LLPointer<LLViewerTexture> mWaterImagep;
LLPointer<LLViewerTexture> mWaterNormp;
const LLWaterSurface *mWaterSurface;
public:
static BOOL sSkipScreenCopy;
static BOOL sNeedsReflectionUpdate;
@@ -80,12 +79,12 @@ public:
/*virtual*/ S32 getNumPasses();
/*virtual*/ void render(S32 pass = 0);
/*virtual*/ void renderFaceSelected(LLFace *facep, LLImageGL *image, const LLColor4 &color,
/*virtual*/ void renderFaceSelected(LLFace *facep, LLViewerTexture *image, const LLColor4 &color,
const S32 index_offset = 0, const S32 index_count = 0);
/*virtual*/ void prerender();
/*virtual*/ void renderForSelect();
/*virtual*/ LLViewerImage *getDebugTexture();
/*virtual*/ LLViewerTexture *getDebugTexture();
/*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display
void renderReflection(LLFace* face);

View File

@@ -47,7 +47,7 @@
#include "llface.h"
#include "llrender.h"
LLPointer<LLImageGL> LLDrawPoolWLSky::sCloudNoiseTexture = NULL;
LLPointer<LLViewerTexture> LLDrawPoolWLSky::sCloudNoiseTexture = NULL;
LLPointer<LLImageRaw> LLDrawPoolWLSky::sCloudNoiseRawImage = NULL;
@@ -71,7 +71,7 @@ LLDrawPoolWLSky::LLDrawPoolWLSky(void) :
cloudNoiseFile->decode(sCloudNoiseRawImage, 0.0f);
LLImageGL::create(sCloudNoiseTexture, sCloudNoiseRawImage, TRUE);
sCloudNoiseTexture = LLViewerTextureManager::getLocalTexture(sCloudNoiseRawImage.get(), TRUE);
LLWLParamManager::instance()->propagateParameters();
}
@@ -83,7 +83,7 @@ LLDrawPoolWLSky::~LLDrawPoolWLSky()
sCloudNoiseRawImage = NULL;
}
LLViewerImage *LLDrawPoolWLSky::getDebugTexture()
LLViewerTexture *LLDrawPoolWLSky::getDebugTexture()
{
return NULL;
}
@@ -233,7 +233,7 @@ void LLDrawPoolWLSky::renderHeavenlyBodies()
LLFace * face = gSky.mVOSkyp->mFace[LLVOSky::FACE_SUN];
if (gSky.mVOSkyp->getSun().getDraw() && face->getGeomCount())
{
LLImageGL * tex = face->getTexture();
LLViewerTexture * tex = face->getTexture();
gGL.getTexUnit(0)->bind(tex);
LLColor4 color(gSky.mVOSkyp->getSun().getInterpColor());
LLFacePool::LLOverrideFaceColor color_override(this, color);
@@ -248,8 +248,7 @@ void LLDrawPoolWLSky::renderHeavenlyBodies()
// *NOTE: even though we already bound this texture above for the
// stars register combiners, we bind again here for defensive reasons,
// since LLImageGL::bind detects that it's a noop, and optimizes it out.
LLImageGL * tex = face->getTexture();
gGL.getTexUnit(0)->bind(tex);
gGL.getTexUnit(0)->bind(face->getTexture());
LLColor4 color(gSky.mVOSkyp->getMoon().getInterpColor());
F32 a = gSky.mVOSkyp->getMoon().getDirection().mV[2];
if (a > 0.f)
@@ -289,14 +288,12 @@ void LLDrawPoolWLSky::render(S32 pass)
// *NOTE: have to bind a texture here since register combiners blending in
// renderStars() requires something to be bound and we might as well only
// bind the moon's texture once.
LLImageGL * tex = gSky.mVOSkyp->mFace[LLVOSky::FACE_MOON]->getTexture();
gGL.getTexUnit(0)->bind(tex);
// bind the moon's texture once.
gGL.getTexUnit(0)->bind(gSky.mVOSkyp->mFace[LLVOSky::FACE_MOON]->getTexture());
renderHeavenlyBodies();
renderStars();
renderStars();
glPopMatrix();
@@ -316,7 +313,7 @@ LLDrawPoolWLSky *LLDrawPoolWLSky::instancePool()
return new LLDrawPoolWLSky();
}
LLViewerImage* LLDrawPoolWLSky::getTexture()
LLViewerTexture* LLDrawPoolWLSky::getTexture()
{
return NULL;
}
@@ -334,5 +331,5 @@ void LLDrawPoolWLSky::cleanupGL()
//static
void LLDrawPoolWLSky::restoreGL()
{
LLImageGL::create(sCloudNoiseTexture, sCloudNoiseRawImage, TRUE);
sCloudNoiseTexture = LLViewerTextureManager::getLocalTexture(sCloudNoiseRawImage.get(), TRUE);
}

View File

@@ -55,7 +55,7 @@ public:
/*virtual*/ void endPostDeferredPass(S32 pass) { endRenderPass(pass); }
/*virtual*/ void renderPostDeferred(S32 pass) { render(pass); }
/*virtual*/ LLViewerImage *getDebugTexture();
/*virtual*/ LLViewerTexture *getDebugTexture();
/*virtual*/ void beginRenderPass( S32 pass );
/*virtual*/ void endRenderPass( S32 pass );
/*virtual*/ S32 getNumPasses() { return 1; }
@@ -65,11 +65,11 @@ public:
/*virtual*/ BOOL verify() const { return TRUE; } // Verify that all data in the draw pool is correct!
/*virtual*/ S32 getVertexShaderLevel() const { return mVertexShaderLevel; }
//static LLDrawPool* createPool(const U32 type, LLViewerImage *tex0 = NULL);
//static LLDrawPool* createPool(const U32 type, LLViewerTexture *tex0 = NULL);
// Create an empty new instance of the pool.
/*virtual*/ LLDrawPoolWLSky *instancePool(); ///< covariant override
/*virtual*/ LLViewerImage* getTexture();
/*virtual*/ LLViewerTexture* getTexture();
/*virtual*/ BOOL isFacePool() { return FALSE; }
/*virtual*/ void resetDrawOrders();
@@ -83,7 +83,7 @@ private:
void renderHeavenlyBodies();
private:
static LLPointer<LLImageGL> sCloudNoiseTexture;
static LLPointer<LLViewerTexture> sCloudNoiseTexture;
static LLPointer<LLImageRaw> sCloudNoiseRawImage;
};

View File

@@ -37,24 +37,20 @@
#include "llviewerwindow.h"
#include "llviewercamera.h"
#include "llviewercontrol.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#include "llvertexbuffer.h"
#include "llviewerdisplay.h"
#include "llrender.h"
// static
LLDynamicTexture::instance_list_t LLDynamicTexture::sInstances[ LLDynamicTexture::ORDER_COUNT ];
S32 LLDynamicTexture::sNumRenders = 0;
LLViewerDynamicTexture::instance_list_t LLViewerDynamicTexture::sInstances[ LLViewerDynamicTexture::ORDER_COUNT ];
S32 LLViewerDynamicTexture::sNumRenders = 0;
//-----------------------------------------------------------------------------
// LLDynamicTexture()
// LLViewerDynamicTexture()
//-----------------------------------------------------------------------------
LLDynamicTexture::LLDynamicTexture(S32 width, S32 height, S32 components, EOrder order, BOOL clamp) :
mWidth(width),
mHeight(height),
mComponents(components),
mTexture(NULL),
mLastBindTime(0),
LLViewerDynamicTexture::LLViewerDynamicTexture(S32 width, S32 height, S32 components, EOrder order, BOOL clamp) :
LLViewerTexture(width, height, components, FALSE),
mClamp(clamp)
{
llassert((1 <= components) && (components <= 4));
@@ -62,66 +58,58 @@ LLDynamicTexture::LLDynamicTexture(S32 width, S32 height, S32 components, EOrder
generateGLTexture();
llassert( 0 <= order && order < ORDER_COUNT );
LLDynamicTexture::sInstances[ order ].insert(this);
LLViewerDynamicTexture::sInstances[ order ].insert(this);
}
//-----------------------------------------------------------------------------
// LLDynamicTexture()
// LLViewerDynamicTexture()
//-----------------------------------------------------------------------------
LLDynamicTexture::~LLDynamicTexture()
LLViewerDynamicTexture::~LLViewerDynamicTexture()
{
releaseGLTexture();
for( S32 order = 0; order < ORDER_COUNT; order++ )
{
LLDynamicTexture::sInstances[order].erase(this); // will fail in all but one case.
LLViewerDynamicTexture::sInstances[order].erase(this); // will fail in all but one case.
}
}
//-----------------------------------------------------------------------------
// releaseGLTexture()
//-----------------------------------------------------------------------------
void LLDynamicTexture::releaseGLTexture()
//virtual
S8 LLViewerDynamicTexture::getType() const
{
if (mTexture.notNull())
{
// llinfos << "RELEASING " << (mWidth*mHeight*mComponents)/1024 << "K" << llendl;
mTexture = NULL;
}
return LLViewerTexture::DYNAMIC_TEXTURE ;
}
//-----------------------------------------------------------------------------
// generateGLTexture()
//-----------------------------------------------------------------------------
void LLDynamicTexture::generateGLTexture()
void LLViewerDynamicTexture::generateGLTexture()
{
LLViewerTexture::generateGLTexture() ;
generateGLTexture(-1, 0, 0, FALSE);
}
void LLDynamicTexture::generateGLTexture(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes, const LLColor4U *fill_color/* = NULL*/)
void LLViewerDynamicTexture::generateGLTexture(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes, const LLColor4U *fill_color/*=NULL*/)
{
if (mComponents < 1 || mComponents > 4)
{
llerrs << "Bad number of components in dynamic texture: " << mComponents << llendl;
}
releaseGLTexture();
LLPointer<LLImageRaw> raw_image = new LLImageRaw(mWidth, mHeight, mComponents);
if(fill_color)
raw_image->fill(*fill_color);
mTexture = new LLViewerImage(mWidth, mHeight, mComponents, FALSE);
LLPointer<LLImageRaw> raw_image = new LLImageRaw(mFullWidth, mFullHeight, mComponents);
if (internal_format >= 0)
{
mTexture->setExplicitFormat(internal_format, primary_format, type_format, swap_bytes);
setExplicitFormat(internal_format, primary_format, type_format, swap_bytes);
}
// llinfos << "ALLOCATING " << (mWidth*mHeight*mComponents)/1024 << "K" << llendl;
mTexture->createGLTexture(0, raw_image, 0, TRUE, LLViewerImageBoostLevel::DYNAMIC_TEX);
mTexture->setAddressMode((mClamp) ? LLTexUnit::TAM_CLAMP : LLTexUnit::TAM_WRAP);
mTexture->setGLTextureCreated(false);
if(fill_color)
raw_image->fill(*fill_color);
createGLTexture(0, raw_image, 0, TRUE, LLViewerTexture::DYNAMIC_TEX);
setAddressMode((mClamp) ? LLTexUnit::TAM_CLAMP : LLTexUnit::TAM_WRAP);
mGLTexturep->setGLTextureCreated(false);
}
//-----------------------------------------------------------------------------
// render()
//-----------------------------------------------------------------------------
BOOL LLDynamicTexture::render()
BOOL LLViewerDynamicTexture::render()
{
return FALSE;
}
@@ -129,13 +117,13 @@ BOOL LLDynamicTexture::render()
//-----------------------------------------------------------------------------
// preRender()
//-----------------------------------------------------------------------------
void LLDynamicTexture::preRender(BOOL clear_depth)
void LLViewerDynamicTexture::preRender(BOOL clear_depth)
{
{
// force rendering to on-screen portion of frame buffer
LLCoordScreen window_pos;
gViewerWindow->getWindow()->getPosition( &window_pos );
mOrigin.set(0, gViewerWindow->getWindowDisplayHeight() - mHeight); // top left corner
mOrigin.set(0, gViewerWindow->getWindowDisplayHeight() - mFullHeight); // top left corner
if (window_pos.mX < 0)
{
@@ -150,13 +138,14 @@ void LLDynamicTexture::preRender(BOOL clear_depth)
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
}
// Set up camera
mCamera.setOrigin(*LLViewerCamera::getInstance());
mCamera.setAxes(*LLViewerCamera::getInstance());
mCamera.setAspect(LLViewerCamera::getInstance()->getAspect());
mCamera.setView(LLViewerCamera::getInstance()->getView());
mCamera.setNear(LLViewerCamera::getInstance()->getNear());
LLViewerCamera* camera = LLViewerCamera::getInstance();
mCamera.setOrigin(*camera);
mCamera.setAxes(*camera);
mCamera.setAspect(camera->getAspect());
mCamera.setView(camera->getView());
mCamera.setNear(camera->getNear());
glViewport(mOrigin.mX, mOrigin.mY, mWidth, mHeight);
glViewport(mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight);
if (clear_depth)
{
glClear(GL_DEPTH_BUFFER_BIT);
@@ -166,12 +155,25 @@ void LLDynamicTexture::preRender(BOOL clear_depth)
//-----------------------------------------------------------------------------
// postRender()
//-----------------------------------------------------------------------------
void LLDynamicTexture::postRender(BOOL success)
void LLViewerDynamicTexture::postRender(BOOL success)
{
{
if (success)
{
success = mTexture->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mWidth, mHeight);
if(mGLTexturep.isNull())
{
generateGLTexture() ;
}
else if(!mGLTexturep->getHasGLTexture())
{
generateGLTexture() ;
}
else if(mGLTexturep->getDiscardLevel() != 0)//do not know how it happens, but regenerate one if it does.
{
generateGLTexture() ;
}
success = mGLTexturep->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight);
}
}
@@ -179,11 +181,12 @@ void LLDynamicTexture::postRender(BOOL success)
gViewerWindow->setupViewport();
// restore camera
LLViewerCamera::getInstance()->setOrigin(mCamera);
LLViewerCamera::getInstance()->setAxes(mCamera);
LLViewerCamera::getInstance()->setAspect(mCamera.getAspect());
LLViewerCamera::getInstance()->setView(mCamera.getView());
LLViewerCamera::getInstance()->setNear(mCamera.getNear());
LLViewerCamera* camera = LLViewerCamera::getInstance();
camera->setOrigin(mCamera);
camera->setAxes(mCamera);
camera->setAspect(mCamera.getAspect());
camera->setView(mCamera.getView());
camera->setNear(mCamera.getNear());
}
//-----------------------------------------------------------------------------
@@ -191,7 +194,7 @@ void LLDynamicTexture::postRender(BOOL success)
// updateDynamicTextures()
// Calls update on each dynamic texture. Calls each group in order: "first," then "middle," then "last."
//-----------------------------------------------------------------------------
BOOL LLDynamicTexture::updateAllInstances()
BOOL LLViewerDynamicTexture::updateAllInstances()
{
sNumRenders = 0;
if (gGLManager.mIsDisabled)
@@ -203,16 +206,15 @@ BOOL LLDynamicTexture::updateAllInstances()
BOOL ret = FALSE ;
for( S32 order = 0; order < ORDER_COUNT; order++ )
{
for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
iter != LLDynamicTexture::sInstances[order].end(); ++iter)
for (instance_list_t::iterator iter = LLViewerDynamicTexture::sInstances[order].begin();
iter != LLViewerDynamicTexture::sInstances[order].end(); ++iter)
{
LLDynamicTexture *dynamicTexture = *iter;
LLViewerDynamicTexture *dynamicTexture = *iter;
if (dynamicTexture->needsRender())
{
{
glClear(GL_DEPTH_BUFFER_BIT);
gDepthDirty = TRUE;
gGL.color4f(1,1,1,1);
dynamicTexture->preRender(); // Must be called outside of startRender()
result = FALSE;
@@ -233,30 +235,18 @@ BOOL LLDynamicTexture::updateAllInstances()
return ret;
}
//virtual
void LLDynamicTexture::restoreGLTexture()
{
generateGLTexture() ;
}
//virtual
void LLDynamicTexture::destroyGLTexture()
{
releaseGLTexture() ;
}
//-----------------------------------------------------------------------------
// static
// destroyGL()
//-----------------------------------------------------------------------------
void LLDynamicTexture::destroyGL()
void LLViewerDynamicTexture::destroyGL()
{
for( S32 order = 0; order < ORDER_COUNT; order++ )
{
for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
iter != LLDynamicTexture::sInstances[order].end(); ++iter)
for (instance_list_t::iterator iter = LLViewerDynamicTexture::sInstances[order].begin();
iter != LLViewerDynamicTexture::sInstances[order].end(); ++iter)
{
LLDynamicTexture *dynamicTexture = *iter;
LLViewerDynamicTexture *dynamicTexture = *iter;
dynamicTexture->destroyGLTexture() ;
}
}
@@ -266,7 +256,7 @@ void LLDynamicTexture::destroyGL()
// static
// restoreGL()
//-----------------------------------------------------------------------------
void LLDynamicTexture::restoreGL()
void LLViewerDynamicTexture::restoreGL()
{
if (gGLManager.mIsDisabled)
{
@@ -275,10 +265,10 @@ void LLDynamicTexture::restoreGL()
for( S32 order = 0; order < ORDER_COUNT; order++ )
{
for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
iter != LLDynamicTexture::sInstances[order].end(); ++iter)
for (instance_list_t::iterator iter = LLViewerDynamicTexture::sInstances[order].begin();
iter != LLViewerDynamicTexture::sInstances[order].end(); ++iter)
{
LLDynamicTexture *dynamicTexture = *iter;
LLViewerDynamicTexture *dynamicTexture = *iter;
dynamicTexture->restoreGLTexture() ;
}
}

View File

@@ -35,59 +35,64 @@
#include "llgl.h"
#include "llcoord.h"
#include "llimagegl.h"
#include "llviewertexture.h"
class LLDynamicTexture
class LLViewerDynamicTexture : public LLViewerTexture
{
public:
enum
{
LL_VIEWER_DYNAMIC_TEXTURE = LLViewerTexture::DYNAMIC_TEXTURE,
LL_TEX_LAYER_SET_BUFFER = LLViewerTexture::INVALID_TEXTURE_TYPE + 1,
LL_VISUAL_PARAM_HINT,
LL_VISUAL_PARAM_RESET,
LL_PREVIEW_ANIMATION,
LL_IMAGE_PREVIEW_SCULPTED,
LL_IMAGE_PREVIEW_AVATAR,
INVALID_DYNAMIC_TEXTURE
};
protected:
/*virtual*/ ~LLViewerDynamicTexture();
public:
enum EOrder { ORDER_FIRST = 0, ORDER_MIDDLE = 1, ORDER_LAST = 2, ORDER_RESET = 3, ORDER_COUNT = 4 };
LLDynamicTexture(S32 width,
LLViewerDynamicTexture(S32 width,
S32 height,
S32 components, // = 4,
EOrder order, // = ORDER_MIDDLE,
BOOL clamp);
virtual ~LLDynamicTexture();
/*virtual*/ S8 getType() const ;
S32 getOriginX() { return mOrigin.mX; }
S32 getOriginY() { return mOrigin.mY; }
S32 getWidth() { return mWidth; }
S32 getHeight() { return mHeight; }
S32 getComponents() { return mComponents; }
S32 getSize() { return mWidth * mHeight * mComponents; }
S32 getSize() { return mFullWidth * mFullHeight * mComponents; }
virtual BOOL needsRender() { return TRUE; }
virtual void preRender(BOOL clear_depth = TRUE);
virtual BOOL render();
virtual void postRender(BOOL success);
virtual void restoreGLTexture() ;
virtual void destroyGLTexture() ;
LLImageGL* getTexture(void) const { return mTexture; }
virtual void restoreGLTexture() {}
virtual void destroyGLTexture() {}
static BOOL updateAllInstances();
static void destroyGL();
static void restoreGL();
static void destroyGL() ;
static void restoreGL() ;
protected:
void releaseGLTexture();
void generateGLTexture();
void generateGLTexture(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes = FALSE, const LLColor4U *fill_color = NULL);
void generateGLTexture(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes = FALSE, const LLColor4U *fill_color=NULL);
protected:
S32 mWidth;
S32 mHeight;
S32 mComponents;
LLPointer<LLImageGL> mTexture;
F32 mLastBindTime;
BOOL mClamp;
LLCoordGL mOrigin;
LLCamera mCamera;
typedef std::set<LLDynamicTexture*> instance_list_t;
static instance_list_t sInstances[ LLDynamicTexture::ORDER_COUNT ];
typedef std::set<LLViewerDynamicTexture*> instance_list_t;
static instance_list_t sInstances[ LLViewerDynamicTexture::ORDER_COUNT ];
static S32 sNumRenders;
};

View File

@@ -47,7 +47,7 @@
#include "lllightconstants.h"
#include "llsky.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llvosky.h"
#include "llvovolume.h"
#include "pipeline.h"
@@ -228,7 +228,7 @@ void LLFace::setWorldMatrix(const LLMatrix4 &mat)
llerrs << "Faces on this drawable are not independently modifiable\n" << llendl;
}
void LLFace::setPool(LLFacePool* new_pool, LLViewerImage *texturep)
void LLFace::setPool(LLFacePool* new_pool, LLViewerTexture *texturep)
{
LLMemType mt1(LLMemType::MTYPE_DRAWABLE);
@@ -262,7 +262,7 @@ void LLFace::setPool(LLFacePool* new_pool, LLViewerImage *texturep)
setTexture(texturep) ;
}
void LLFace::setTexture(LLViewerImage* tex)
void LLFace::setTexture(LLViewerTexture* tex)
{
if(mTexture == tex)
{
@@ -287,7 +287,7 @@ void LLFace::dirtyTexture()
gPipeline.markTextured(getDrawable());
}
void LLFace::switchTexture(LLViewerImage* new_texture)
void LLFace::switchTexture(LLViewerTexture* new_texture)
{
if(mTexture == new_texture)
{
@@ -299,7 +299,7 @@ void LLFace::switchTexture(LLViewerImage* new_texture)
llerrs << "Can not switch to a null texture." << llendl;
return;
}
new_texture->addTextureStats(mTexture->mMaxVirtualSize) ;
new_texture->addTextureStats(mTexture->getMaxVirtualSize()) ;
getViewerObject()->changeTEImage(mTEOffset, new_texture) ;
setTexture(new_texture) ;
@@ -476,8 +476,7 @@ void LLFace::renderForSelect(U32 data_mask)
}
}
}
void LLFace::renderSelected(LLImageGL *imagep, const LLColor4& color)
void LLFace::renderSelected(LLViewerTexture *imagep, const LLColor4& color)
{
if (mDrawablep->getSpatialGroup() == NULL)
{
@@ -521,8 +520,8 @@ void LLFace::renderSelected(LLImageGL *imagep, const LLColor4& color)
/* removed in lieu of raycast uv detection
void LLFace::renderSelectedUV()
{
LLViewerImage* red_blue_imagep = gImageList.getImageFromFile("uv_test1.j2c", TRUE, TRUE);
LLViewerImage* green_imagep = gImageList.getImageFromFile("uv_test2.tga", TRUE, TRUE);
LLViewerTexture* red_blue_imagep = gTextureList.getImageFromFile("uv_test1.j2c", TRUE, TRUE);
LLViewerTexture* green_imagep = gTextureList.getImageFromFile("uv_test2.tga", TRUE, TRUE);
LLGLSUVSelect object_select;
@@ -961,7 +960,15 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
{
if (num_indices + (S32) mIndicesIndex > mVertexBuffer->getNumIndices())
{
llwarns << "Index buffer overflow!" << llendl;
llwarns << "Index buffer overflow!" << llendl;
llwarns << "Indices Count: " << mIndicesCount
<< " VF Num Indices: " << num_indices
<< " Indices Index: " << mIndicesIndex
<< " VB Num Indices: " << mVertexBuffer->getNumIndices() << llendl;
llwarns << "Last Indices Count: " << mLastIndicesCount
<< " Last Indices Index: " << mLastIndicesIndex
<< " Face Index: " << f
<< " Pool Type: " << mPoolType << llendl;
return FALSE;
}
@@ -1152,7 +1159,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
break;
case BE_BRIGHTNESS:
case BE_DARKNESS:
if( mTexture.notNull() && mTexture->getHasGLTexture())
if( mTexture.notNull() && mTexture->hasGLTexture())
{
// Offset by approximately one texel
S32 cur_discard = mTexture->getDiscardLevel();
@@ -1346,7 +1353,7 @@ F32 LLFace::getTextureVirtualSize()
}
face_area = LLFace::adjustPixelArea(mImportanceToCamera, face_area);
if (/*mImportanceToCamera < 1.0f && */face_area > LLViewerImage::sMinLargeImageSize) //if is large image, shrink face_area by considering the partial overlapping.
if (/*mImportanceToCamera < 1.0f && */face_area > LLViewerTexture::sMinLargeImageSize) //if is large image, shrink face_area by considering the partial overlapping.
{
if (mImportanceToCamera > LEAST_IMPORTANCE_FOR_LARGE_IMAGE && mTexture.notNull() && mTexture->isLargeImage())
{
@@ -1359,28 +1366,6 @@ F32 LLFace::getTextureVirtualSize()
return face_area;
}
//static
F32 LLFace::adjustPixelArea(F32 importance, F32 pixel_area)
{
if (pixel_area > LLViewerImage::sMaxSmallImageSize)
{
if (importance < LEAST_IMPORTANCE) //if the face is not important, do not load hi-res.
{
static const F32 MAX_LEAST_IMPORTANCE_IMAGE_SIZE = 128.0f * 128.0f;
pixel_area = llmin(pixel_area * 0.5f, MAX_LEAST_IMPORTANCE_IMAGE_SIZE);
}
else if (pixel_area > LLViewerImage::sMinLargeImageSize) //if is large image, shrink face_area by considering the partial overlapping.
{
if (importance < LEAST_IMPORTANCE_FOR_LARGE_IMAGE) //if the face is not important, do not load hi-res.
{
pixel_area = LLViewerImage::sMinLargeImageSize;
}
}
}
return pixel_area ;
}
BOOL LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
{
//get area of circle around face
@@ -1398,7 +1383,7 @@ BOOL LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
mPixelArea = radius*radius * 3.14159f;
cos_angle_to_view_dir = lookAt * camera->getXAxis();
if (dist < mBoundingSphereRadius || dist < 10.0f) //camera is very close
if(dist < mBoundingSphereRadius) //camera is very close
{
cos_angle_to_view_dir = 1.0f;
mImportanceToCamera = 1.0f;
@@ -1479,6 +1464,28 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist)
return importance ;
}
//static
F32 LLFace::adjustPixelArea(F32 importance, F32 pixel_area)
{
if(pixel_area > LLViewerTexture::sMaxSmallImageSize)
{
if(importance < LEAST_IMPORTANCE) //if the face is not important, do not load hi-res.
{
static const F32 MAX_LEAST_IMPORTANCE_IMAGE_SIZE = 128.0f * 128.0f ;
pixel_area = llmin(pixel_area * 0.5f, MAX_LEAST_IMPORTANCE_IMAGE_SIZE) ;
}
else if(pixel_area > LLViewerTexture::sMinLargeImageSize) //if is large image, shrink face_area by considering the partial overlapping.
{
if(importance < LEAST_IMPORTANCE_FOR_LARGE_IMAGE)//if the face is not important, do not load hi-res.
{
pixel_area = LLViewerTexture::sMinLargeImageSize ;
}
}
}
return pixel_area ;
}
BOOL LLFace::verify(const U32* indices_array) const
{
BOOL ok = TRUE;
@@ -1667,3 +1674,7 @@ LLVector3 LLFace::getPositionAgent() const
return mCenterLocal * getRenderMatrix();
}
}
LLViewerTexture* LLFace::getTexture() const
{
return mTexture ;
}

View File

@@ -45,16 +45,16 @@
#include "xform.h"
#include "lldarrayptr.h"
#include "llvertexbuffer.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#include "llstat.h"
#include "lldrawable.h"
class LLFacePool;
class LLVolume;
class LLViewerImage;
class LLViewerTexture;
class LLTextureEntry;
class LLVertexProgram;
class LLViewerImage;
class LLViewerTexture;
class LLGeometryManager;
const F32 MIN_ALPHA_SIZE = 1024.f;
@@ -87,8 +87,8 @@ public:
U16 getGeomCount() const { return mGeomCount; } // vertex count for this face
U16 getGeomIndex() const { return mGeomIndex; } // index into draw pool
U16 getGeomStart() const { return mGeomIndex; } // index into draw pool
void setTexture(LLViewerImage* tex) ;
void switchTexture(LLViewerImage* new_texture);
void setTexture(LLViewerTexture* tex) ;
void switchTexture(LLViewerTexture* new_texture);
void dirtyTexture();
LLXformMatrix* getXform() const { return mXform; }
BOOL hasGeometry() const { return mGeomCount > 0; }
@@ -127,10 +127,10 @@ public:
LLVertexBuffer* getVertexBuffer() const { return mVertexBuffer; }
void setPoolType(U32 type) { mPoolType = type; }
S32 getTEOffset() { return mTEOffset; }
LLViewerImage* getTexture() const { return mTexture; }
LLViewerTexture* getTexture() const;
void setViewerObject(LLViewerObject* object);
void setPool(LLFacePool *pool, LLViewerImage *texturep);
void setPool(LLFacePool *pool, LLViewerTexture *texturep);
void setDrawable(LLDrawable *drawable);
void setTEOffset(const S32 te_offset);
@@ -180,7 +180,7 @@ public:
void renderSelectedUV();
void renderForSelect(U32 data_mask = LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0);
void renderSelected(LLImageGL *image, const LLColor4 &color);
void renderSelected(LLViewerTexture *image, const LLColor4 &color);
F32 getKey() const { return mDistance; }
@@ -240,7 +240,7 @@ private:
U32 mLastIndicesIndex;
LLXformMatrix* mXform;
LLPointer<LLViewerImage> mTexture;
LLPointer<LLViewerTexture> mTexture;
LLPointer<LLDrawable> mDrawablep;
LLPointer<LLViewerObject> mVObjp;
S32 mTEOffset;

View File

@@ -43,7 +43,7 @@
#include "llfontgl.h"
#include "llappviewer.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llui.h"
#include "llviewercontrol.h"
#include "llstat.h"

View File

@@ -50,7 +50,7 @@
#include "llviewercontrol.h"
#include "llworld.h"
#include "lldrawpoolterrain.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llwindow.h"
#include "llui.h"
#include "llcontrol.h"

View File

@@ -43,7 +43,7 @@
#include "llagent.h"
#include "llsky.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewercontrol.h"
#include "llviewerobjectlist.h"
#include "llviewerregion.h"

View File

@@ -497,7 +497,6 @@ BOOL LLFloaterAnimPreview::postBuild()
}
else
{
delete mAnimPreview;
mAnimPreview = NULL;
mMotionID.setNull();
childSetValue("bad_animation_text", getString("failed_to_initialize"));
@@ -536,7 +535,6 @@ LLFloaterAnimPreview::~LLFloaterAnimPreview()
avatarp->startMotion(ANIM_AGENT_STAND, BASE_ANIM_TIME_OFFSET);
}
}
delete mAnimPreview;
mAnimPreview = NULL;
setEnabled(FALSE);
@@ -556,7 +554,7 @@ void LLFloaterAnimPreview::draw()
{
gGL.color3f(1.f, 1.f, 1.f);
gGL.getTexUnit(0)->bind(mAnimPreview->getTexture());
gGL.getTexUnit(0)->bind(mAnimPreview);
gGL.begin( LLRender::QUADS );
{
@@ -1469,7 +1467,7 @@ void LLFloaterAnimPreview::onBtnOK(void* userdata)
//-----------------------------------------------------------------------------
// LLPreviewAnimation
//-----------------------------------------------------------------------------
LLPreviewAnimation::LLPreviewAnimation(S32 width, S32 height) : LLDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
LLPreviewAnimation::LLPreviewAnimation(S32 width, S32 height) : LLViewerDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
{
mNeedsUpdate = TRUE;
mCameraDistance = PREVIEW_CAMERA_DISTANCE;
@@ -1504,6 +1502,12 @@ LLPreviewAnimation::~LLPreviewAnimation()
mDummyAvatar->markDead();
}
//virtual
S8 LLPreviewAnimation::getType() const
{
return LLViewerDynamicTexture::LL_PREVIEW_ANIMATION ;
}
//-----------------------------------------------------------------------------
// update()
//-----------------------------------------------------------------------------
@@ -1515,7 +1519,7 @@ BOOL LLPreviewAnimation::render()
glMatrixMode(GL_PROJECTION);
gGL.pushMatrix();
glLoadIdentity();
glOrtho(0.0f, mWidth, 0.0f, mHeight, -1.0f, 1.0f);
glOrtho(0.0f, mFullWidth, 0.0f, mFullHeight, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
gGL.pushMatrix();
@@ -1525,7 +1529,7 @@ BOOL LLPreviewAnimation::render()
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
gGL.color4f(0.15f, 0.2f, 0.3f, 1.f);
gl_rect_2d_simple( mWidth, mHeight );
gl_rect_2d_simple( mFullWidth, mFullHeight );
glMatrixMode(GL_PROJECTION);
gGL.popMatrix();
@@ -1547,7 +1551,7 @@ BOOL LLPreviewAnimation::render()
target_pos + (mCameraOffset * av_rot) ); // point of interest
LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / mCameraZoom);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mWidth, mHeight, FALSE);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight, FALSE);
mCameraRelPos = LLViewerCamera::getInstance()->getOrigin() - avatarp->mHeadp->getWorldPosition();

View File

@@ -41,12 +41,16 @@
class LLVOAvatar;
class LLViewerJointMesh;
class LLPreviewAnimation : public LLDynamicTexture
class LLPreviewAnimation : public LLViewerDynamicTexture
{
public:
LLPreviewAnimation(S32 width, S32 height);
protected:
virtual ~LLPreviewAnimation();
public:
LLPreviewAnimation(S32 width, S32 height);
/*virtual*/ S8 getType() const ;
BOOL render();
void requestUpdate();
void rotate(F32 yaw_radians, F32 pitch_radians);
@@ -116,7 +120,7 @@ protected:
void draw();
void resetMotion();
LLPreviewAnimation* mAnimPreview;
LLPointer< LLPreviewAnimation> mAnimPreview;
S32 mLastMouseX;
S32 mLastMouseY;
LLButton* mPlayButton;

View File

@@ -45,7 +45,7 @@
#include "llagent.h"
#include "llcombobox.h"
#include "llnotify.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerparcelmgr.h"
#include "llviewerregion.h"
#include "lluictrlfactory.h"
@@ -196,7 +196,7 @@ void LLFloaterAuction::onClickSnapshot(void* data)
tga->encode(raw);
LLVFile::writeFile(tga->getData(), tga->getDataSize(), gVFS, self->mImageID, LLAssetType::AT_IMAGE_TGA);
raw->biasedScaleToPowerOfTwo(LLViewerImage::MAX_IMAGE_SIZE_DEFAULT);
raw->biasedScaleToPowerOfTwo(LLViewerTexture::MAX_IMAGE_SIZE_DEFAULT);
llinfos << "Writing J2C..." << llendl;
@@ -204,7 +204,7 @@ void LLFloaterAuction::onClickSnapshot(void* data)
j2c->encode(raw, 0.0f);
LLVFile::writeFile(j2c->getData(), j2c->getDataSize(), gVFS, self->mImageID, LLAssetType::AT_TEXTURE);
self->mImage = new LLImageGL((LLImageRaw*)raw, FALSE);
self->mImage = LLViewerTextureManager::getLocalTexture((LLImageRaw*)raw, FALSE);
gGL.getTexUnit(0)->bind(self->mImage);
self->mImage->setAddressMode(LLTexUnit::TAM_CLAMP);
}

View File

@@ -37,7 +37,7 @@
#include "llfloater.h"
#include "lluuid.h"
#include "llmemory.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLFloaterAuction
@@ -69,7 +69,7 @@ private:
private:
LLTransactionID mTransactionID;
LLAssetID mImageID;
LLPointer<LLImageGL> mImage;
LLPointer<LLViewerTexture> mImage;
LLSafeHandle<LLParcelSelection> mParcelp;
S32 mParcelID;
LLHost mParcelHost;

View File

@@ -57,7 +57,7 @@ class LLTextBox;
class LLTextEditor;
class LLTextureCtrl;
class LLUICtrl;
class LLViewerImage;
class LLViewerTexture;
class LLViewerObject;
class LLFloaterAvatarInfo

View File

@@ -165,7 +165,7 @@ createUI ()
* ( bits + x + y * linesize + 2 ) = ( U8 )( bVal * 255.0f );
}
}
mRGBImage = new LLImageGL ( (LLImageRaw*)raw, FALSE );
mRGBImage = LLViewerTextureManager::getLocalTexture( (LLImageRaw*)raw, FALSE );
gGL.getTexUnit(0)->bind(mRGBImage);
mRGBImage->setAddressMode(LLTexUnit::TAM_CLAMP);

View File

@@ -180,7 +180,7 @@ class LLFloaterColorPicker
const S32 mPaletteRegionHeight;
// image used to compose color grid
LLPointer<LLImageGL> mRGBImage;
LLPointer<LLViewerTexture> mRGBImage;
// current swatch in use
LLColorSwatchCtrl* mSwatch;

View File

@@ -55,7 +55,7 @@
#include "llinventoryview.h"
#include "lltextbox.h"
#include "lllineeditor.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llfocusmgr.h"
#include "llviewerwindow.h"
#include "llviewercamera.h"
@@ -763,7 +763,7 @@ void LLPanelEditWearable::onInvisibilityCommit(LLUICtrl* ctrl, void* userdata)
bool new_invis_state = checkbox_ctrl->get();
if (new_invis_state)
{
LLViewerImage* image = gImageList.getImage(IMG_INVISIBLE);
LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture(IMG_INVISIBLE);
const LLTextureEntry* current_te = avatar->getTE(te);
if (current_te)
{
@@ -782,7 +782,7 @@ void LLPanelEditWearable::onInvisibilityCommit(LLUICtrl* ctrl, void* userdata)
}
if (prev_id.notNull())
{
LLViewerImage* image = gImageList.getImage(prev_id);
LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture(prev_id);
avatar->setLocTexTE(te, image, TRUE);
avatar->wearableUpdated(self->mType, FALSE);
}
@@ -888,10 +888,10 @@ void LLPanelEditWearable::onTextureCommit( LLUICtrl* ctrl, void* userdata )
ETextureIndex te = (ETextureIndex)(self->mTextureList[ctrl->getName()]);
// Set the new version
LLViewerImage* image = gImageList.getImage( texture_ctrl->getImageAssetID() );
LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture( texture_ctrl->getImageAssetID() );
if (image->getID().isNull())
{
image = gImageList.getImage(IMG_DEFAULT_AVATAR);
image = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR);
}
self->mTextureList[ctrl->getName()] = te;
if (gAgent.getWearable(self->mType))
@@ -1297,8 +1297,8 @@ public:
public:
LLViewerVisualParam* mParam;
LLVisualParamHint* mHintMin;
LLVisualParamHint* mHintMax;
LLPointer<LLVisualParamHint> mHintMin;
LLPointer<LLVisualParamHint> mHintMax;
static S32 sUpdateDelayFrames;
protected:
@@ -1372,8 +1372,8 @@ LLScrollingPanelParam::LLScrollingPanelParam( const std::string& name,
LLScrollingPanelParam::~LLScrollingPanelParam()
{
delete mHintMin;
delete mHintMax;
mHintMin = NULL;
mHintMax = NULL;
}
void LLScrollingPanelParam::updatePanel(BOOL allow_modify)
@@ -2471,7 +2471,7 @@ void LLFloaterCustomize::initWearablePanels()
LLFloaterCustomize::~LLFloaterCustomize()
{
llinfos << "Destroying LLFloaterCustomize" << llendl;
delete mResetParams;
mResetParams = NULL;
gInventory.removeObserver(mInventoryObserver);
delete mInventoryObserver;
}

View File

@@ -44,7 +44,7 @@ void LLFloaterExploreAnimations::close(bool app_quitting)
LLFloaterExploreAnimations::~LLFloaterExploreAnimations()
{
delete mAnimPreview;
mAnimPreview = NULL;
LLFloaterExploreAnimations::sInstance = NULL;
}
@@ -99,7 +99,7 @@ void LLFloaterExploreAnimations::draw()
gGL.color3f(1.f, 1.f, 1.f);
gGL.getTexUnit(0)->bind(mAnimPreview->getTexture());
gGL.getTexUnit(0)->bind(mAnimPreview);
gGL.begin( LLRender::QUADS );
{

View File

@@ -29,7 +29,7 @@ public:
void update();
LLUUID mAvatarID;
LLPreviewAnimation* mAnimPreview;
LLPointer<LLPreviewAnimation> mAnimPreview;
private:
virtual ~LLFloaterExploreAnimations();

View File

@@ -55,7 +55,7 @@
#include "lltextbox.h"
#include "lluictrlfactory.h"
#include "llviewergesture.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerinventory.h"
#include "llvoavatar.h"
#include "llviewercontrol.h"

View File

@@ -36,7 +36,7 @@
#include "llfloaterpreference.h"
#include "llviewerwindow.h"
#include "llviewercontrol.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llfeaturemanager.h"
#include "llstartup.h"
@@ -90,8 +90,8 @@ void LLFloaterHardwareSettings::refresh()
void LLFloaterHardwareSettings::refreshEnabledState()
{
S32 min_tex_mem = LLViewerImageList::getMinVideoRamSetting();
S32 max_tex_mem = LLViewerImageList::getMaxVideoRamSetting();
S32 min_tex_mem = LLViewerTextureList::getMinVideoRamSetting();
S32 max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting();
childSetMinValue("GrapicsCardTextureMemory", min_tex_mem);
childSetMaxValue("GrapicsCardTextureMemory", max_tex_mem);
@@ -169,32 +169,20 @@ BOOL LLFloaterHardwareSettings::postBuild()
}
void LLFloaterHardwareSettings::apply()
void LLFloaterHardwareSettings::apply()
{
// Anisotropic rendering
BOOL old_anisotropic = LLImageGL::sGlobalUseAnisotropic;
LLImageGL::sGlobalUseAnisotropic = childGetValue("ani");
U32 fsaa = (U32) childGetValue("fsaa").asInteger();
U32 old_fsaa = gSavedSettings.getU32("RenderFSAASamples");
BOOL logged_in = (LLStartUp::getStartupState() >= STATE_STARTED);
if (old_fsaa != fsaa)
//Still do a bit of voodoo here. V2 forces restart to change FSAA with FBOs off.
//Let's not do that, and instead do pre-V2 FSAA change handling for that particular case
if(!LLRenderTarget::sUseFBO && (mFSAASamples != (U32)childGetValue("fsaa").asInteger()))
{
gSavedSettings.setU32("RenderFSAASamples", fsaa);
BOOL logged_in = (LLStartUp::getStartupState() >= STATE_STARTED);
LLWindow* window = gViewerWindow->getWindow();
LLCoordScreen size;
window->getSize(&size);
gViewerWindow->changeDisplaySettings(window->getFullscreen(),
size,
gSavedSettings.getBOOL("DisableVerticalSync"),
logged_in);
}
else if (old_anisotropic != LLImageGL::sGlobalUseAnisotropic)
{
LLImageGL::dirtyTexOptions();
gViewerWindow->restartDisplay(logged_in);
size,
gSavedSettings.getBOOL("DisableVerticalSync"),
logged_in);
}
refresh();

View File

@@ -56,7 +56,7 @@
#include "llvoavatar.h"
#include "pipeline.h"
#include "lluictrlfactory.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llstring.h"
// <edit>
#include "llviewercontrol.h"
@@ -162,8 +162,8 @@ LLFloaterImagePreview::~LLFloaterImagePreview()
clearAllPreviewTextures();
mRawImagep = NULL;
delete mAvatarPreview;
delete mSculptedPreview;
mAvatarPreview = NULL;
mSculptedPreview = NULL;
mImagep = NULL ;
}
@@ -272,7 +272,7 @@ void LLFloaterImagePreview::draw()
}
else
{
mImagep = new LLImageGL(mRawImagep, FALSE) ;
mImagep = LLViewerTextureManager::getLocalTexture(mRawImagep.get(), FALSE) ;
gGL.getTexUnit(0)->unbind(mImagep->getTarget()) ;
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
@@ -314,11 +314,11 @@ void LLFloaterImagePreview::draw()
if (selected == 9)
{
gGL.getTexUnit(0)->bind(mSculptedPreview->getTexture());
gGL.getTexUnit(0)->bind(mSculptedPreview);
}
else
{
gGL.getTexUnit(0)->bind(mAvatarPreview->getTexture());
gGL.getTexUnit(0)->bind(mAvatarPreview);
}
gGL.begin( LLRender::QUADS );
@@ -626,7 +626,7 @@ void LLFloaterImagePreview::onMouseCaptureLostImagePreview(LLMouseHandler* handl
//-----------------------------------------------------------------------------
// LLImagePreviewAvatar
//-----------------------------------------------------------------------------
LLImagePreviewAvatar::LLImagePreviewAvatar(S32 width, S32 height) : LLDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
LLImagePreviewAvatar::LLImagePreviewAvatar(S32 width, S32 height) : LLViewerDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
{
mNeedsUpdate = TRUE;
mTargetJoint = NULL;
@@ -655,6 +655,11 @@ LLImagePreviewAvatar::~LLImagePreviewAvatar()
mDummyAvatar->markDead();
}
//virtual
S8 LLImagePreviewAvatar::getType() const
{
return LLViewerDynamicTexture::LL_IMAGE_PREVIEW_AVATAR ;
}
void LLImagePreviewAvatar::setPreviewTarget(const std::string& joint_name, const std::string& mesh_name, LLImageRaw* imagep, F32 distance, BOOL male)
{
@@ -716,7 +721,7 @@ BOOL LLImagePreviewAvatar::render()
glMatrixMode(GL_PROJECTION);
gGL.pushMatrix();
glLoadIdentity();
glOrtho(0.0f, mWidth, 0.0f, mHeight, -1.0f, 1.0f);
glOrtho(0.0f, mFullWidth, 0.0f, mFullHeight, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
gGL.pushMatrix();
@@ -725,7 +730,7 @@ BOOL LLImagePreviewAvatar::render()
LLGLSUIDefault def;
gGL.color4f(0.15f, 0.2f, 0.3f, 1.f);
gl_rect_2d_simple( mWidth, mHeight );
gl_rect_2d_simple( mFullWidth, mFullHeight );
glMatrixMode(GL_PROJECTION);
gGL.popMatrix();
@@ -747,9 +752,9 @@ BOOL LLImagePreviewAvatar::render()
stop_glerror();
LLViewerCamera::getInstance()->setAspect((F32)mWidth / mHeight);
LLViewerCamera::getInstance()->setAspect((F32)mFullWidth / mFullHeight);
LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / mCameraZoom);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mWidth, mHeight, FALSE);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight, FALSE);
LLVertexBuffer::unbind();
avatarp->updateLOD();
@@ -807,7 +812,7 @@ void LLImagePreviewAvatar::pan(F32 right, F32 up)
// LLImagePreviewSculpted
//-----------------------------------------------------------------------------
LLImagePreviewSculpted::LLImagePreviewSculpted(S32 width, S32 height) : LLDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
LLImagePreviewSculpted::LLImagePreviewSculpted(S32 width, S32 height) : LLViewerDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE)
{
mNeedsUpdate = TRUE;
mCameraDistance = 0.f;
@@ -829,6 +834,11 @@ LLImagePreviewSculpted::~LLImagePreviewSculpted()
{
}
//virtual
S8 LLImagePreviewSculpted::getType() const
{
return LLViewerDynamicTexture::LL_IMAGE_PREVIEW_SCULPTED ;
}
void LLImagePreviewSculpted::setPreviewTarget(LLImageRaw* imagep, F32 distance)
{
@@ -890,7 +900,7 @@ BOOL LLImagePreviewSculpted::render()
glMatrixMode(GL_PROJECTION);
gGL.pushMatrix();
glLoadIdentity();
glOrtho(0.0f, mWidth, 0.0f, mHeight, -1.0f, 1.0f);
glOrtho(0.0f, mFullWidth, 0.0f, mFullHeight, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
gGL.pushMatrix();
@@ -898,7 +908,7 @@ BOOL LLImagePreviewSculpted::render()
gGL.color4f(0.15f, 0.2f, 0.3f, 1.f);
gl_rect_2d_simple( mWidth, mHeight );
gl_rect_2d_simple( mFullWidth, mFullHeight );
glMatrixMode(GL_PROJECTION);
gGL.popMatrix();
@@ -921,9 +931,9 @@ BOOL LLImagePreviewSculpted::render()
stop_glerror();
LLViewerCamera::getInstance()->setAspect((F32) mWidth / mHeight);
LLViewerCamera::getInstance()->setAspect((F32) mFullWidth / mFullHeight);
LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / mCameraZoom);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mWidth, mHeight, FALSE);
LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight, FALSE);
const LLVolumeFace &vf = mVolume->getVolumeFace(0);
U32 num_indices = vf.mIndices.size();

View File

@@ -43,13 +43,18 @@ class LLViewerJointMesh;
class LLVOAvatar;
class LLTextBox;
class LLVertexBuffer;
class LLVolume;
class LLImagePreviewSculpted : public LLDynamicTexture
class LLImagePreviewSculpted : public LLViewerDynamicTexture
{
public:
LLImagePreviewSculpted(S32 width, S32 height);
protected:
virtual ~LLImagePreviewSculpted();
public:
LLImagePreviewSculpted(S32 width, S32 height);
/*virtual*/ S8 getType() const ;
void setPreviewTarget(LLImageRaw *imagep, F32 distance);
void setTexture(U32 name) { mTextureName = name; }
@@ -73,12 +78,16 @@ class LLImagePreviewSculpted : public LLDynamicTexture
};
class LLImagePreviewAvatar : public LLDynamicTexture
class LLImagePreviewAvatar : public LLViewerDynamicTexture
{
public:
LLImagePreviewAvatar(S32 width, S32 height);
protected:
virtual ~LLImagePreviewAvatar();
public:
LLImagePreviewAvatar(S32 width, S32 height);
/*virtual*/ S8 getType() const ;
void setPreviewTarget(const std::string& joint_name, const std::string& mesh_name, LLImageRaw* imagep, F32 distance, BOOL male);
void setTexture(U32 name) { mTextureName = name; }
void clearPreviewTexture(const std::string& mesh_name);
@@ -130,13 +139,13 @@ protected:
bool loadImage(const std::string& filename);
LLPointer<LLImageRaw> mRawImagep;
LLImagePreviewAvatar* mAvatarPreview;
LLImagePreviewSculpted* mSculptedPreview;
LLPointer<LLImagePreviewAvatar> mAvatarPreview;
LLPointer<LLImagePreviewSculpted> mSculptedPreview;
S32 mLastMouseX;
S32 mLastMouseY;
LLRect mPreviewRect;
LLRectf mPreviewImageRect;
LLPointer<LLImageGL> mImagep ;
LLPointer<LLViewerTexture> mImagep ;
static S32 sUploadAmount;
};

View File

@@ -36,7 +36,7 @@
#include "lluictrlfactory.h"
#include "llviewerstats.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#include "llviewercontrol.h"
#include "llappviewer.h"
@@ -180,7 +180,7 @@ void LLFloaterLagMeter::determineClient()
{
mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) );
}
else if((BYTES_TO_MEGA_BYTES(LLViewerImage::sBoundTextureMemoryInBytes)) > LLViewerImage::sMaxBoundTextureMemInMegaBytes)
else if((BYTES_TO_MEGA_BYTES(LLViewerTexture::sBoundTextureMemoryInBytes)) > LLViewerTexture::sMaxBoundTextureMemInMegaBytes)
{
mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) );
}

View File

@@ -68,7 +68,7 @@
#include "lltexturectrl.h"
#include "lluiconstants.h"
#include "lluictrlfactory.h"
#include "llviewerimagelist.h" // LLUIImageList
#include "llviewertexturelist.h" // LLUIImageList
#include "llviewermessage.h"
#include "llviewerparcelmgr.h"
#include "llviewerregion.h"
@@ -1072,10 +1072,10 @@ BOOL LLPanelLandObjects::postBuild()
mBtnReturnOwnerList = getChild<LLButton>("Return objects...");
mBtnReturnOwnerList->setClickedCallback(onClickReturnOwnerList, this);
mIconAvatarOnline = LLUIImageList::getInstance()->getUIImage("icon_avatar_online.tga");
mIconAvatarInSim = LLUIImageList::getInstance()->getUIImage("ff_visible_map.tga");
mIconAvatarOffline = LLUIImageList::getInstance()->getUIImage("icon_avatar_offline.tga");
mIconGroup = LLUIImageList::getInstance()->getUIImage("icon_group.tga");
mIconAvatarOnline = LLUI::getUIImage("icon_avatar_online.tga");
mIconAvatarInSim = LLUI::getUIImage("ff_visible_map.tga");
mIconAvatarOffline = LLUI::getUIImage("icon_avatar_offline.tga");
mIconGroup = LLUI::getUIImage("icon_group.tga");
mOwnerList = getChild<LLNameListCtrl>("owner list");
mOwnerList->sortByColumnIndex(3, FALSE);

View File

@@ -38,7 +38,7 @@
#include <vector>
#include "llfloater.h"
//#include "llviewerimagelist.h"
//#include "llviewertexturelist.h"
#include "llmemory.h" // LLPointer<>
typedef std::set<LLUUID, lluuid_less> uuid_list_t;

View File

@@ -46,7 +46,7 @@ class LLFolderViewItem;
class LLSearchEditor;
class LLInventoryPanel;
class LLSaveFolderState;
class LLViewerImage;
class LLViewerTexture;
// used for setting drag & drop callbacks.
typedef BOOL (*drag_n_drop_callback)(LLUICtrl*, LLInventoryItem*, void*);
@@ -89,7 +89,7 @@ public:
static void onSearchEdit(const std::string& search_string, void* user_data );
protected:
LLPointer<LLViewerImage> mLandmarkp;
LLPointer<LLViewerTexture> mLandmarkp;
LLUUID mImageAssetID; // Currently selected texture

View File

@@ -82,7 +82,7 @@ LLFloaterPostcard::instance_list_t LLFloaterPostcard::sInstances;
/// Class LLFloaterPostcard
///----------------------------------------------------------------------------
LLFloaterPostcard::LLFloaterPostcard(LLImageJPEG* jpeg, LLImageGL *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global)
LLFloaterPostcard::LLFloaterPostcard(LLImageJPEG* jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global)
: LLFloater(std::string("Postcard Floater")),
mJPEGImage(jpeg),
mViewerImage(img),
@@ -144,7 +144,7 @@ BOOL LLFloaterPostcard::postBuild()
// static
LLFloaterPostcard* LLFloaterPostcard::showFromSnapshot(LLImageJPEG *jpeg, LLImageGL *img, const LLVector2 &image_scale, const LLVector3d& pos_taken_global)
LLFloaterPostcard* LLFloaterPostcard::showFromSnapshot(LLImageJPEG *jpeg, LLViewerTexture *img, const LLVector2 &image_scale, const LLVector3d& pos_taken_global)
{
// Take the images from the caller
// It's now our job to clean them up

View File

@@ -37,25 +37,27 @@
#include "llimagejpeg.h"
#include "llfloater.h"
#include "llcheckboxctrl.h"
#include "llviewertexture.h"
#include "llmemory.h"
class LLTextEditor;
class LLLineEditor;
class LLButton;
class LLImageJPEG;
class LLFloaterPostcard
: public LLFloater
{
public:
LLFloaterPostcard(LLImageJPEG* jpeg, LLImageGL *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global);
LLFloaterPostcard(LLImageJPEG* jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global);
virtual ~LLFloaterPostcard();
virtual void init();
virtual BOOL postBuild();
virtual void draw();
static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLImageGL *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global);
static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global);
static void onClickCancel(void* data);
static void onClickSend(void* data);
@@ -74,12 +76,12 @@ public:
protected:
LLPointer<LLImageJPEG> mJPEGImage;
LLPointer<LLImageGL> mViewerImage;
LLPointer<LLViewerTexture> mViewerImage;
LLTransactionID mTransactionID;
LLAssetID mAssetID;
LLVector2 mImageScale;
LLVector3d mPosTakenGlobal;
boolean mHasFirstMsgFocus;
bool mHasFirstMsgFocus;
typedef std::set<LLFloaterPostcard*> instance_list_t;
static instance_list_t sInstances;

View File

@@ -73,8 +73,7 @@
#include "lltrans.h"
#include "llviewercontrol.h"
#include "lluictrlfactory.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerregion.h"
#include "llviewerstats.h"
#include "llviewertexteditor.h"
@@ -1140,11 +1139,11 @@ BOOL LLPanelRegionTextureInfo::validateTextureSizes()
if (!texture_ctrl) continue;
LLUUID image_asset_id = texture_ctrl->getImageAssetID();
LLViewerImage* img = gImageList.getImage(image_asset_id);
LLViewerTexture* img = LLViewerTextureManager::getFetchedTexture(image_asset_id);
S32 components = img->getComponents();
// Must ask for highest resolution version's width. JC
S32 width = img->getWidth(0);
S32 height = img->getHeight(0);
S32 width = img->getFullWidth();
S32 height = img->getFullHeight();
//llinfos << "texture detail " << i << " is " << width << "x" << height << "x" << components << llendl;

View File

@@ -74,7 +74,7 @@
#include "lltoolmgr.h"
#include "llresourcedata.h" // for LLResourceData
#include "llviewerwindow.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llworldmap.h"
#include "llfilepicker.h"
#include "llfloateravatarpicker.h"
@@ -927,7 +927,7 @@ void LLFloaterReporter::takeScreenshot()
llwarns << "Unable to take screenshot" << llendl;
return;
}
LLPointer<LLImageJ2C> upload_data = LLViewerImageList::convertToUploadFile(raw);
LLPointer<LLImageJ2C> upload_data = LLViewerTextureList::convertToUploadFile(raw);
// create a resource data
mResourceDatap->mInventoryType = LLInventoryType::IT_NONE;
@@ -961,9 +961,9 @@ void LLFloaterReporter::takeScreenshot()
mResourceDatap->mAssetInfo.mType);
// store in the image list so it doesn't try to fetch from the server
LLPointer<LLViewerImage> image_in_list = new LLViewerImage(mResourceDatap->mAssetInfo.mUuid);
image_in_list->createGLTexture(0, raw, 0, TRUE, LLViewerImageBoostLevel::OTHER);
gImageList.addImage(image_in_list);
LLPointer<LLViewerFetchedTexture> image_in_list =
LLViewerTextureManager::getFetchedTexture(mResourceDatap->mAssetInfo.mUuid, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::FETCHED_TEXTURE);
image_in_list->createGLTexture(0, raw, 0, TRUE, LLViewerTexture::OTHER);
// the texture picker then uses that texture
LLTexturePicker* texture = getChild<LLTextureCtrl>("screenshot");

View File

@@ -39,7 +39,7 @@
#include "v3math.h"
class LLMessageSystem;
class LLViewerImage;
class LLViewerTexture;
class LLInventoryItem;
class LLViewerObject;
class LLAgent;

View File

@@ -45,7 +45,7 @@
#include "llviewertexteditor.h"
#include "llviewercontrol.h"
#include "llviewerobjectlist.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
//
// Statics
@@ -129,7 +129,7 @@ void LLFloaterScriptDebug::addScriptLine(const std::string &utf8mesg, const std:
if (objectp)
{
objectp->setIcon(gImageList.getImageFromFile("script_error.j2c", TRUE, TRUE));
objectp->setIcon(LLViewerTextureManager::getFetchedTextureFromFile("script_error.j2c", TRUE, LLViewerTexture::BOOST_UI));
floater_label = llformat("%s(%.2f, %.2f)", user_name.c_str(), objectp->getPositionRegion().mV[VX], objectp->getPositionRegion().mV[VY]);
}
else

View File

@@ -131,12 +131,12 @@ public:
LLFloaterSnapshot::ESnapshotFormat getSnapshotFormat() const { return mSnapshotFormat; }
BOOL getSnapshotUpToDate() const { return mSnapshotUpToDate; }
BOOL isSnapshotActive() { return mSnapshotActive; }
LLImageGL* getThumbnailImage() const { return mThumbnailImage ; }
LLViewerTexture* getThumbnailImage() const { return mThumbnailImage ; }
S32 getThumbnailWidth() const { return mThumbnailWidth ; }
S32 getThumbnailHeight() const { return mThumbnailHeight ; }
BOOL getThumbnailLock() const { return mThumbnailUpdateLock ; }
BOOL getThumbnailUpToDate() const { return mThumbnailUpToDate ;}
LLImageGL* getCurrentImage();
LLViewerTexture* getCurrentImage();
F32 getImageAspect();
F32 getAspect() ;
LLRect getImageRect();
@@ -161,7 +161,7 @@ public:
private:
LLColor4 mColor;
LLPointer<LLImageGL> mViewerImage[2]; //used to represent the scene when the frame is frozen.
LLPointer<LLViewerTexture> mViewerImage[2]; //used to represent the scene when the frame is frozen.
LLRect mImageRect[2];
S32 mWidth[2];
S32 mHeight[2];
@@ -169,7 +169,7 @@ private:
S32 mMaxImageSize ;
//thumbnail image
LLPointer<LLImageGL> mThumbnailImage ;
LLPointer<LLViewerTexture> mThumbnailImage ;
S32 mThumbnailWidth ;
S32 mThumbnailHeight ;
LLRect mPreviewRect ;
@@ -269,7 +269,7 @@ void LLSnapshotLivePreview::setMaxImageSize(S32 size)
}
}
LLImageGL* LLSnapshotLivePreview::getCurrentImage()
LLViewerTexture* LLSnapshotLivePreview::getCurrentImage()
{
return mViewerImage[mCurImageIndex];
}
@@ -718,7 +718,7 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
if(raw)
{
mThumbnailImage = new LLImageGL(raw, FALSE);
mThumbnailImage = LLViewerTextureManager::getLocalTexture(raw.get(), FALSE);
mThumbnailUpToDate = TRUE ;
}
@@ -867,8 +867,8 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
scaled->expandToPowerOfTwo(1024, FALSE);
}
previewp->mViewerImage[previewp->mCurImageIndex] = new LLImageGL(scaled, FALSE);
LLPointer<LLImageGL> curr_preview_image = previewp->mViewerImage[previewp->mCurImageIndex];
previewp->mViewerImage[previewp->mCurImageIndex] = LLViewerTextureManager::getLocalTexture(scaled.get(), FALSE);
LLPointer<LLViewerTexture> curr_preview_image = previewp->mViewerImage[previewp->mCurImageIndex];
gGL.getTexUnit(0)->bind(curr_preview_image);
if (previewp->getSnapshotType() != SNAPSHOT_TEXTURE)
{
@@ -888,7 +888,7 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
S32 w = get_lower_power_two(scaled->getWidth(), 512) * 2 ;
S32 h = get_lower_power_two(scaled->getHeight(), 512) * 2 ;
scaled->scale(w,h);
previewp->mThumbnailImage = new LLImageGL(scaled, FALSE);
previewp->mThumbnailImage = LLViewerTextureManager::getLocalTexture(scaled.get(), FALSE);
previewp->mThumbnailUpdateLock = FALSE ;
previewp->setThumbnailImageSize();
}

View File

@@ -44,7 +44,7 @@
#include "llviewerstats.h"
#include "pipeline.h"
#include "llviewerobjectlist.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
const S32 LL_SCROLL_BORDER = 1;
@@ -144,7 +144,7 @@ void LLFloaterStats::buildStats()
// Texture statistics
LLStatView *texture_statviewp = render_statviewp->addStatView("texture stat view", "Texture", "OpenDebugStatTexture", rect);
stat_barp = texture_statviewp->addStat("Count", &(gImageList.sNumImagesStat), "DebugStatModeTextureCount");
stat_barp = texture_statviewp->addStat("Count", &(gTextureList.sNumImagesStat), "DebugStatModeTextureCount");
stat_barp->setUnitLabel("");
stat_barp->mMinBar = 0.f;
stat_barp->mMaxBar = 8000.f;
@@ -152,7 +152,7 @@ void LLFloaterStats::buildStats()
stat_barp->mLabelSpacing = 4000.f;
stat_barp->mPerSec = FALSE;
stat_barp = texture_statviewp->addStat("Raw Count", &(gImageList.sNumRawImagesStat), "DebugStatModeRawCount");
stat_barp = texture_statviewp->addStat("Raw Count", &(gTextureList.sNumRawImagesStat), "DebugStatModeRawCount");
stat_barp->setUnitLabel("");
stat_barp->mMinBar = 0.f;
stat_barp->mMaxBar = 8000.f;
@@ -160,7 +160,7 @@ void LLFloaterStats::buildStats()
stat_barp->mLabelSpacing = 4000.f;
stat_barp->mPerSec = FALSE;
stat_barp = texture_statviewp->addStat("GL Mem", &(gImageList.sGLTexMemStat), "DebugStatModeGLMem");
stat_barp = texture_statviewp->addStat("GL Mem", &(gTextureList.sGLTexMemStat), "DebugStatModeGLMem");
stat_barp->setUnitLabel("");
stat_barp->mMinBar = 0.f;
stat_barp->mMaxBar = 400.f;
@@ -169,7 +169,7 @@ void LLFloaterStats::buildStats()
stat_barp->mPrecision = 1;
stat_barp->mPerSec = FALSE;
stat_barp = texture_statviewp->addStat("Formatted Mem", &(gImageList.sFormattedMemStat), "DebugStatModeFormattedMem");
stat_barp = texture_statviewp->addStat("Formatted Mem", &(gTextureList.sFormattedMemStat), "DebugStatModeFormattedMem");
stat_barp->setUnitLabel("");
stat_barp->mMinBar = 0.f;
stat_barp->mMaxBar = 400.f;
@@ -178,7 +178,7 @@ void LLFloaterStats::buildStats()
stat_barp->mPrecision = 1;
stat_barp->mPerSec = FALSE;
stat_barp = texture_statviewp->addStat("Raw Mem", &(gImageList.sRawMemStat), "DebugStatModeRawMem");
stat_barp = texture_statviewp->addStat("Raw Mem", &(gTextureList.sRawMemStat), "DebugStatModeRawMem");
stat_barp->setUnitLabel("");
stat_barp->mMinBar = 0.f;
stat_barp->mMaxBar = 400.f;
@@ -187,7 +187,7 @@ void LLFloaterStats::buildStats()
stat_barp->mPrecision = 1;
stat_barp->mPerSec = FALSE;
stat_barp = texture_statviewp->addStat("Bound Mem", &(gImageList.sGLBoundMemStat), "DebugStatModeBoundMem");
stat_barp = texture_statviewp->addStat("Bound Mem", &(gTextureList.sGLBoundMemStat), "DebugStatModeBoundMem");
stat_barp->setUnitLabel("");
stat_barp->mMinBar = 0.f;
stat_barp->mMaxBar = 400.f;

View File

@@ -8,8 +8,7 @@
#include "lllocalinventory.h"
#include "llviewerwindow.h"
#include "llassetconverter.h"
#include "llviewerimagelist.h"
#include "llviewerimage.h"
#include "llviewertexturelist.h"
#include "llimagej2c.h"
LLFloaterVFS* LLFloaterVFS::sInstance;
@@ -206,7 +205,7 @@ void LLFloaterVFS::removeEntry()
if((*iter).mID == mEditID)
{
if((*iter).mType == LLAssetType::AT_TEXTURE)
gImageList.deleteImage(gImageList.hasImage( (*iter).mID ));
gTextureList.deleteImage(gTextureList.findImage( (*iter).mID ));
else
gVFS->removeFile((*iter).mID, (*iter).mType);
iter = mFiles.erase(iter);
@@ -270,9 +269,9 @@ void LLFloaterVFS::onClickAdd(void* user_data)
llinfos << "Image: " << file_name << " is corrupt." << llendl;
return;
}
LLPointer<LLViewerImage> imagep = new LLViewerImage(asset_id);
imagep->createGLTexture(0, image_raw, 0, TRUE, LLViewerImageBoostLevel::BOOST_NONE);
gImageList.addImage(imagep);
LLPointer<LLViewerFetchedTexture> imagep = new LLViewerFetchedTexture(asset_id);
imagep->createGLTexture(0, image_raw, 0, TRUE, LLViewerTexture::BOOST_NONE);
gTextureList.addImage(imagep);
}
else
{

View File

@@ -55,8 +55,7 @@
#include "llscrollcontainer.h" // hack to allow scrolling
#include "lltooldraganddrop.h"
#include "llui.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerjointattachment.h"
#include "llviewermenu.h"
#include "lluictrlfactory.h"

View File

@@ -52,7 +52,7 @@
#include "stdenums.h"
#include "llfontgl.h"
#include "lleditmenuhandler.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#include "lldepthstack.h"
#include "lltooldraganddrop.h"

View File

@@ -66,7 +66,7 @@
#include "llviewerregion.h"
#include "llviewerwindow.h"
#include "llglheaders.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
//#include "lltoolobjpicker.h"
#include "llhudmanager.h" // HACK for creating flex obj's

View File

@@ -41,7 +41,7 @@
#include "llbox.h"
#include "lldrawable.h"
#include "llhudrender.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerobjectlist.h"
#include "llviewerpartsim.h"
#include "llviewerpartsource.h"

View File

@@ -40,7 +40,7 @@
#include "llviewerobject.h"
#include "lldrawable.h"
#include "llviewercamera.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#include "llviewerwindow.h"
//-----------------------------------------------------------------------------
@@ -145,7 +145,7 @@ void LLHUDIcon::renderIcon(BOOL for_select)
alpha_factor *= clamp_rescale(time_elapsed, MAX_VISIBLE_TIME - FADE_OUT_TIME, MAX_VISIBLE_TIME, 1.f, 0.f);
}
F32 image_aspect = (F32)mImagep->mFullWidth / (F32)mImagep->mFullHeight;
F32 image_aspect = (F32)mImagep->getFullWidth() / (F32)mImagep->getFullHeight();
LLVector3 x_scale = image_aspect * (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * x_pixel_vec;
LLVector3 y_scale = (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * y_pixel_vec;
@@ -165,7 +165,7 @@ void LLHUDIcon::renderIcon(BOOL for_select)
LLColor4 icon_color = LLColor4::white;
icon_color.mV[VALPHA] = alpha_factor;
gGL.color4fv(icon_color.mV);
gGL.getTexUnit(0)->bind(mImagep.get());
gGL.getTexUnit(0)->bind(mImagep);
}
gGL.begin(LLRender::QUADS);
@@ -182,7 +182,7 @@ void LLHUDIcon::renderIcon(BOOL for_select)
gGL.end();
}
void LLHUDIcon::setImage(LLViewerImage* imagep)
void LLHUDIcon::setImage(LLViewerTexture* imagep)
{
mImagep = imagep;
mImagep->setAddressMode(LLTexUnit::TAM_CLAMP);
@@ -262,7 +262,7 @@ BOOL LLHUDIcon::lineSegmentIntersect(const LLVector3& start, const LLVector3& en
return FALSE;
}
F32 image_aspect = (F32)mImagep->mFullWidth / (F32)mImagep->mFullHeight;
F32 image_aspect = (F32)mImagep->getFullWidth() / (F32)mImagep->getFullHeight();
LLVector3 x_scale = image_aspect * (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * x_pixel_vec;
LLVector3 y_scale = (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * y_pixel_vec;

View File

@@ -50,6 +50,7 @@
// Renders a 2D icon billboard floating at the location specified.
class LLDrawable;
class LLViewerObject;
class LLViewerTexture;
class LLHUDIcon : public LLHUDObject
{
@@ -61,7 +62,7 @@ public:
/*virtual*/ void markDead();
/*virtual*/ F32 getDistance() const { return mDistance; }
void setImage(LLViewerImage* imagep);
void setImage(LLViewerTexture* imagep);
void setScale(F32 fraction_of_fov);
void restartLifeTimer() { mLifeTimer.reset(); }
@@ -88,7 +89,7 @@ protected:
void renderIcon(BOOL for_select); // common render code
private:
LLPointer<LLViewerImage> mImagep;
LLPointer<LLViewerTexture> mImagep;
LLFrameTimer mAnimTimer;
LLFrameTimer mLifeTimer;
F32 mDistance;

View File

@@ -48,7 +48,7 @@
#include "llimagegl.h"
#include "llui.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerobject.h"
#include "llvovolume.h"
#include "llviewerwindow.h"

View File

@@ -73,7 +73,7 @@
#include "llscrollcontainer.h"
#include "llimview.h"
#include "lltooldraganddrop.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerinventory.h"
#include "llviewerobjectlist.h"
#include "llviewerwindow.h"

View File

@@ -6,8 +6,7 @@
#include "llviewerinventory.h"
#include "llfilepicker.h"
#include "lldirpicker.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h" // gImageList
#include "llviewertexturelist.h" // gTextureList
#include "llagent.h" // gAgent
#include "llviewerwindow.h" // gViewerWindow
#include "llfloater.h"
@@ -294,13 +293,13 @@ void LLInventoryBackup::download(LLInventoryItem* item, LLFloater* floater, load
LLInventoryBackup::callbackdata* userdata = new LLInventoryBackup::callbackdata();
userdata->floater = floater;
userdata->item = item;
LLViewerImage* imagep;
LLViewerFetchedTexture* imagep;
switch(item->getType())
{
case LLAssetType::AT_TEXTURE:
imagep = gImageList.getImage(item->getAssetUUID(), MIPMAP_TRUE, TRUE);
imagep->setLoadedCallbackNoAux( onImage, 0, TRUE, FALSE, userdata );
imagep = LLViewerTextureManager::getFetchedTexture(item->getAssetUUID(), MIPMAP_TRUE, LLViewerTexture::BOOST_UI);
imagep->setLoadedCallback( onImage, 0, TRUE, FALSE, userdata, NULL ); // was setLoadedCallbackNoAuth
break;
case LLAssetType::AT_NOTECARD:
case LLAssetType::AT_SCRIPT:
@@ -331,7 +330,7 @@ void LLInventoryBackup::download(LLInventoryItem* item, LLFloater* floater, load
// static
void LLInventoryBackup::imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,
@@ -376,7 +375,7 @@ void LLInventoryBackup::imageCallback(BOOL success,
}
else
{
src_vi->setBoostLevel(LLViewerImageBoostLevel::BOOST_UI);
src_vi->setBoostLevel(LLViewerTexture::BOOST_UI);
}
}
@@ -683,7 +682,7 @@ void LLFloaterInventoryBackup::finishItem(LLUUID itemid, std::string status)
// static
void LLFloaterInventoryBackup::imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,
@@ -726,7 +725,7 @@ void LLFloaterInventoryBackup::imageCallback(BOOL success,
}
else
{
src_vi->setBoostLevel(LLViewerImageBoostLevel::BOOST_UI);
src_vi->setBoostLevel(LLViewerTexture::BOOST_UI);
}
}

View File

@@ -12,7 +12,7 @@
#include "llviewerinventory.h"
#include "llfolderview.h"
#include "llfilepicker.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
#include "llfloater.h"
@@ -71,7 +71,7 @@ private:
void finishItem(LLUUID itemid, std::string status);
void advance();
static void imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,
@@ -114,7 +114,7 @@ public:
private:
static void imageCallback(BOOL success,
LLViewerImage *src_vi,
LLViewerFetchedTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,

View File

@@ -77,7 +77,7 @@
#include "lltooldraganddrop.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerinventory.h"
#include "llviewerobjectlist.h"
@@ -143,7 +143,7 @@ bool confirm_replace_attachment_rez(const LLSD& notification, const LLSD& respon
// <edit>
void gotImageForSaveItemAs(BOOL success,
LLViewerImage *src_vi,
LLViewerTexture *src_vi,
LLImageRaw* src,
LLImageRaw* aux_src,
S32 discard_level,

View File

@@ -71,7 +71,7 @@
#include "llscrollbar.h"
#include "llimview.h"
#include "lltooldraganddrop.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerinventory.h"
#include "llviewerobjectlist.h"
#include "llviewerwindow.h"

View File

@@ -42,8 +42,7 @@
// Project includes
#include "llui.h"
#include "llagent.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerwindow.h"
#include "llmoveview.h"
@@ -651,7 +650,7 @@ void LLJoystickCameraRotate::draw()
}
// Draws image rotated by multiples of 90 degrees
void LLJoystickCameraRotate::drawRotatedImage( LLImageGL* image, S32 rotations )
void LLJoystickCameraRotate::drawRotatedImage( LLTexture* image, S32 rotations )
{
S32 width = image->getWidth();
S32 height = image->getHeight();
@@ -735,8 +734,8 @@ LLJoystickCameraZoom::LLJoystickCameraZoom(const std::string& name, LLRect rect,
mInTop( FALSE ),
mInBottom( FALSE )
{
mPlusInImage = LLUIImageList::getInstance()->getUIImage(plus_in_img);
mMinusInImage = LLUIImageList::getInstance()->getUIImage(minus_in_img);
mPlusInImage = LLUI::getUIImage(plus_in_img);
mMinusInImage = LLUI::getUIImage(minus_in_img);
}

View File

@@ -35,7 +35,7 @@
#include "llbutton.h"
#include "llcoord.h"
#include "llviewerimage.h"
#include "llviewertexture.h"
typedef enum e_joystick_quadrant
{
@@ -136,7 +136,7 @@ public:
protected:
F32 getOrbitRate();
virtual void updateSlop();
void drawRotatedImage( LLImageGL* image, S32 rotations );
void drawRotatedImage( LLTexture* image, S32 rotations );
protected:
BOOL mInLeft;

View File

@@ -40,7 +40,7 @@
#include "llrender.h"
#include "llprimitive.h"
#include "llview.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llagent.h"
#include "llviewercontrol.h"
@@ -89,6 +89,7 @@ void LLManip::rebuild(LLViewerObject* vobj)
if (group)
{
group->dirtyGeom();
gPipeline.markRebuild(group, TRUE);
}
}
}

View File

@@ -82,7 +82,7 @@ const F32 PLANE_TICK_SIZE = 0.4f;
const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f;
const F32 SNAP_ARROW_SCALE = 0.7f;
static LLPointer<LLImageGL> sGridTex = NULL ;
static LLPointer<LLViewerTexture> sGridTex = NULL ;
const LLManip::EManipPart MANIPULATOR_IDS[9] =
{
@@ -158,7 +158,7 @@ void LLManipTranslate::restoreGL()
U32 mip = 0;
destroyGL() ;
sGridTex = new LLImageGL() ;
sGridTex = LLViewerTextureManager::getLocalTexture() ;
if(!sGridTex->createGLTexture())
{
sGridTex = NULL ;
@@ -167,7 +167,7 @@ void LLManipTranslate::restoreGL()
GLuint* d = new GLuint[rez*rez];
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex->getTexName());
gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex->getTexName(), true);
gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_TRILINEAR);
while (rez >= 1)

View File

@@ -35,7 +35,7 @@
#include "llmapresponders.h"
#include "llfloaterworldmap.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llworldmap.h"
#include "llagent.h"
@@ -80,7 +80,7 @@ void LLMapLayerResponder::result(const LLSD& result)
// }
// else
// {
new_layer.LayerImage = gImageList.getImage(new_layer.LayerImageID, MIPMAP_TRUE, FALSE);
new_layer.LayerImage = LLViewerTextureManager::getFetchedTexture(new_layer.LayerImageID);
// }
gGL.getTexUnit(0)->bind(new_layer.LayerImage.get());
new_layer.LayerImage->setAddressMode(LLTexUnit::TAM_CLAMP);
@@ -179,14 +179,14 @@ void LLMapLayerResponder::result(const LLSD& result)
}
else
{
siminfo->mCurrentImage = gImageList.getImage(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap], MIPMAP_TRUE, FALSE);
siminfo->mCurrentImage = LLViewerTextureManager::getFetchedTexture(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap]);
}
siminfo->mCurrentImage->setAddressMode(LLTexUnit::TAM_CLAMP);
gGL.getTexUnit(0)->bind(siminfo->mCurrentImage.get());
if (siminfo->mMapImageID[2].notNull())
{
siminfo->mOverlayImage = gImageList.getImage(siminfo->mMapImageID[2], MIPMAP_TRUE, FALSE);
siminfo->mOverlayImage = LLViewerTextureManager::getFetchedTexture(siminfo->mMapImageID[2]);
}
else
{

View File

@@ -93,7 +93,7 @@ LLMediaCtrl::LLMediaCtrl( const std::string& name, const LLRect& rect ) :
if ( !mMediaSource )
{
llwarns << "media source create failed " << llendl;
// return;
return;
}
else
{
@@ -123,7 +123,6 @@ LLMediaCtrl::~LLMediaCtrl()
if ( mWebBrowserImage )
{
delete mWebBrowserImage;
mWebBrowserImage = NULL;
}
}
@@ -589,7 +588,7 @@ void LLMediaCtrl::draw()
}
// scale texture to fit the space using texture coords
gGL.getTexUnit(0)->bind(mWebBrowserImage->getTexture());
gGL.getTexUnit(0)->bind(mWebBrowserImage);
gGL.color4fv( LLColor4::white.mV );
F32 max_u = ( F32 )mWebBrowserImage->getMediaWidth() / ( F32 )mWebBrowserImage->getWidth();
F32 max_v = ( F32 )mWebBrowserImage->getMediaHeight() / ( F32 )mWebBrowserImage->getHeight();
@@ -914,7 +913,7 @@ void LLMediaCtrl::onClickLinkNoFollow( LLPluginClassMedia* self )
////////////////////////////////////////////////////////////////////////////////
//
LLWebBrowserTexture::LLWebBrowserTexture( S32 width, S32 height, LLMediaCtrl* browserCtrl, viewer_media_t media_source ) :
LLDynamicTexture( 512, 512, 4, ORDER_FIRST, TRUE ),
LLViewerDynamicTexture( 512, 512, 4, ORDER_FIRST, TRUE ),
mNeedsUpdate( true ),
mNeedsResize( false ),
mTextureCoordsOpenGL( true ),
@@ -1005,7 +1004,7 @@ BOOL LLWebBrowserTexture::render()
data += ( x_pos * media_plugin->getTextureDepth() * media_plugin->getBitsWidth() );
data += ( y_pos * media_plugin->getTextureDepth() );
mTexture->setSubImage(
setSubImage(
data,
media_plugin->getBitsWidth(),
media_plugin->getBitsHeight(),
@@ -1120,18 +1119,18 @@ bool LLWebBrowserTexture::updateBrowserTexture()
return false;
if(mMediaSource->mNeedsNewTexture
|| media->getTextureWidth() != mWidth
|| media->getTextureHeight() != mHeight )
|| media->getTextureWidth() != getFullWidth()
|| media->getTextureHeight() != getFullHeight() )
{
releaseGLTexture();
//releaseGLTexture();
mWidth = media->getTextureWidth();
mHeight = media->getTextureHeight();
mFullWidth = media->getTextureWidth();
mFullHeight = media->getTextureHeight();
mTextureCoordsOpenGL = media->getTextureCoordsOpenGL();
const LLColor4U fill_color(0,0,0,255);
// will create mWidth * mHeight sized texture, using the texture params specified by the media.
LLDynamicTexture::generateGLTexture(
generateGLTexture(
media->getTextureFormatInternal(),
media->getTextureFormatPrimary(),
media->getTextureFormatType(),

View File

@@ -143,7 +143,7 @@ class LLMediaCtrl :
static bool onClickLinkExternalTarget( const LLSD&, const LLSD& );
const S32 mTextureDepthBytes;
LLWebBrowserTexture* mWebBrowserImage;
LLPointer<LLWebBrowserTexture> mWebBrowserImage;
LLViewBorder* mBorder;
bool mFrequentUpdates;
bool mForceUpdate;
@@ -165,7 +165,7 @@ class LLMediaCtrl :
////////////////////////////////////////////////////////////////////////////////
//
class LLWebBrowserTexture : public LLDynamicTexture
class LLWebBrowserTexture : public LLViewerDynamicTexture
{
LOG_CLASS(LLWebBrowserTexture);
public:

View File

@@ -58,8 +58,7 @@
#include "lluictrlfactory.h"
#include "lluuid.h"
#include "llviewercamera.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewermenu.h"
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
@@ -883,7 +882,7 @@ void LLNetMap::createObjectImage()
mObjectRawImagep = new LLImageRaw(img_size, img_size, 4);
U8* data = mObjectRawImagep->getData();
memset( data, 0, img_size * img_size * 4 );
mObjectImagep = new LLImageGL( mObjectRawImagep, FALSE);
mObjectImagep = LLViewerTextureManager::getLocalTexture( mObjectRawImagep.get(), FALSE);
}
setScale(mScale);
mUpdateNow = TRUE;

View File

@@ -39,9 +39,9 @@
#include "v3dmath.h"
#include "v4color.h"
#include "llimage.h"
#include "llimagegl.h"
class LLTextBox;
class LLViewerTexture;
typedef enum e_minimap_center
{
@@ -112,7 +112,7 @@ private:
BOOL mUpdateNow;
LLVector3d mObjectImageCenterGlobal;
LLPointer<LLImageRaw> mObjectRawImagep;
LLPointer<LLImageGL> mObjectImagep;
LLPointer<LLViewerTexture> mObjectImagep;
private:
LLUUID mClosestAgentToCursor;

View File

@@ -50,7 +50,7 @@
#include "llalertdialog.h"
#include "llviewercontrol.h"
#include "llviewerdisplay.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llfloaterchat.h" // for add_chat_history()
#include "lloverlaybar.h" // for gOverlayBar
#include "lluictrlfactory.h"

View File

@@ -52,7 +52,7 @@
#include "lltextbox.h"
#include "llui.h"
#include "llviewercontrol.h"
#include "llviewerimagelist.h"
#include "llviewertexturelist.h"
#include "llviewerjoystick.h"
#include "llviewermedia.h"
#include "llviewermenu.h" // handle_reset_view()

View File

@@ -52,7 +52,7 @@ class LLTextBox;
class LLTextEditor;
class LLTextureCtrl;
class LLUICtrl;
class LLViewerImage;
class LLViewerTexture;
class LLViewerObject;
class LLMessageSystem;
class LLIconCtrl;

Some files were not shown because too many files have changed in this diff Show More