LLWindow V3 partial merge. Includes Most everything sans new LLMouseHandler which requires some messy changes in llviewerwindow that are best left for a dedicated commit. Also, some translation fluff was skipped for now.

This commit is contained in:
Shyotl
2011-08-29 03:44:17 -05:00
parent c129a1a923
commit baddb47c44
58 changed files with 1937 additions and 504 deletions

View File

@@ -21,6 +21,7 @@
#include "llweb.h"
#include "llviewercontrol.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "lldiriterator.h"
#include "llfile.h"
#include "llhttpclient.h"

View File

@@ -2868,6 +2868,23 @@ void LLAppViewer::forceQuit()
LLApp::setQuitting();
}
//TODO: remove
void LLAppViewer::fastQuit(S32 error_code)
{
// finish pending transfers
flushVFSIO();
// let sim know we're logging out
sendLogoutRequest();
// flush network buffers by shutting down messaging system
end_messaging_system();
// figure out the error code
S32 final_error_code = error_code ? error_code : (S32)isError();
// this isn't a crash
removeMarkerFile();
// get outta here
_exit(final_error_code);
}
void LLAppViewer::requestQuit()
{
llinfos << "requestQuit" << llendl;
@@ -2943,13 +2960,6 @@ void LLAppViewer::earlyExit(const std::string& name, const LLSD& substitutions)
LLNotifications::instance().add(name, substitutions, LLSD(), finish_early_exit);
}
void LLAppViewer::forceExit(S32 arg)
{
removeMarkerFile();
// *FIX:Mani - This kind of exit hardly seems appropriate.
exit(arg);
}
void LLAppViewer::abortQuit()
{

View File

@@ -66,11 +66,11 @@ public:
// Application control
void flushVFSIO(); // waits for vfs transfers to complete
void forceQuit(); // Puts the viewer into 'shutting down without error' mode.
void fastQuit(S32 error_code = 0); // Shuts down the viewer immediately after sending a logout message
void requestQuit(); // Request a quit. A kinder, gentler quit.
void userQuit(); // The users asks to quit. Confirm, then requestQuit()
void earlyExit(const std::string& name,
const LLSD& substitutions = LLSD()); // Display an error dialog and forcibly quit.
void forceExit(S32 arg); // exit() immediately (after some cleanup).
void abortQuit(); // Called to abort a quit request.
bool quitRequested() { return mQuitRequested; }

View File

@@ -37,12 +37,12 @@
// Linden library includes
#include "v4color.h"
#include "llwindow.h" // setCursor()
// Project includes
#include "llui.h"
#include "llrender.h"
#include "lluiconstants.h"
#include "llviewerwindow.h"
#include "llviewercontrol.h"
#include "llbutton.h"
#include "lltextbox.h"

View File

@@ -34,6 +34,7 @@
#include "lldynamictexture.h"
#include "llglheaders.h"
#include "llwindow.h" // getPosition()
#include "llviewerwindow.h"
#include "llviewercamera.h"
#include "llviewercontrol.h"
@@ -55,6 +56,13 @@ LLViewerDynamicTexture::LLViewerDynamicTexture(S32 width, S32 height, S32 compon
{
llassert((1 <= components) && (components <= 4));
if(gGLManager.mDebugGPU)
{
if(components == 3)
{
mComponents = 4 ; //convert to 32bits.
}
}
generateGLTexture();
llassert( 0 <= order && order < ORDER_COUNT );

View File

@@ -33,6 +33,7 @@
#ifndef LL_LLDYNAMICTEXTURE_H
#define LL_LLDYNAMICTEXTURE_H
#include "llcamera.h"
#include "llgl.h"
#include "llcoord.h"
#include "llviewertexture.h"

View File

@@ -41,6 +41,8 @@
#include "llparcel.h"
#include "llvfile.h"
#include "llvfs.h"
#include "llwindow.h"
#include "message.h"
#include "llagent.h"
#include "llcombobox.h"

View File

@@ -22,6 +22,7 @@
#include "lluictrlfactory.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llscrolllistctrl.h"
#include "llradiogroup.h"
#include "llviewercontrol.h"

View File

@@ -9,6 +9,7 @@
#include "llcheckboxctrl.h"
#include "statemachine/aifilepicker.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llviewercontrol.h"
#include "lldate.h"
#include "llagent.h"

View File

@@ -50,6 +50,7 @@
#include "llviewercontrol.h"
#include "lluictrlfactory.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llgl.h"
#include "llmemory.h"
#include "llimage.h"
@@ -203,7 +204,7 @@ showUI ()
{
LLColor4 curCol = swatch->get ();
send_agent_pause();
gViewerWindow->getWindow ()->dialog_color_picker ( &curCol [ 0 ], &curCol [ 1 ], &curCol [ 2 ] );
gViewerWindow->getWindow()->dialogColorPicker( &curCol [ 0 ], &curCol [ 1 ], &curCol [ 2 ] );
send_agent_resume();
setOrigRgb ( curCol [ 0 ], curCol [ 1 ], curCol [ 2 ] );

View File

@@ -35,6 +35,7 @@
#include "llfloaterhardwaresettings.h"
#include "llfloaterpreference.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llviewercontrol.h"
#include "llviewertexturelist.h"
#include "llfeaturemanager.h"

View File

@@ -61,6 +61,7 @@
#include "llviewerstats.h"
#include "llviewercamera.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llviewermenufile.h" // upload_new_resource()
#include "llfloaterpostcard.h"
#include "llcheckboxctrl.h"

View File

@@ -50,6 +50,7 @@
#include "llurlsimstring.h"
#include "llviewercontrol.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llweb.h"
#include "llsdserialize.h"
// [RLVa:KB]

View File

@@ -43,6 +43,7 @@
#include "llagent.h"
#include "llagentcamera.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llbutton.h"
#include "llcallingcard.h"
#include "llcolorscheme.h"

View File

@@ -60,6 +60,7 @@
#include "llviewerobject.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llhudrender.h"
#include "llworld.h"
#include "v2math.h"

View File

@@ -41,6 +41,7 @@
#include "llrender.h"
#include "lldrawable.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "lluictrlfactory.h"
#include "llbutton.h"
#include "llface.h"

View File

@@ -67,6 +67,7 @@
#include "llviewerobject.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llvovolume.h"
#include "llworld.h"
#include "pipeline.h"

View File

@@ -44,6 +44,7 @@
#include "llstring.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llresmgr.h"
#include "lltextbox.h"
#include "llbutton.h"

View File

@@ -39,6 +39,7 @@
#include "llview.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "lltoolcomp.h"
#include "lltoolfocus.h"
#include "llfocusmgr.h"

View File

@@ -43,6 +43,7 @@
#include "llagent.h"
#include "llcallbacklist.h"
#include "llviewercontrol.h"
#include "llwindow.h"
#include "llfloatertools.h"
#include "llregionposition.h"
#include "llstatusbar.h"

View File

@@ -35,6 +35,7 @@
#include "lltoolgun.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llagent.h"
#include "llagentcamera.h"
#include "llviewercontrol.h"

View File

@@ -47,6 +47,7 @@
#include "llviewermenu.h"
#include "llviewercamera.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "lldrawable.h"

View File

@@ -63,6 +63,7 @@
#include "llviewerobject.h"
#include "llviewerparcelmgr.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llviewermedia.h"
#include "llviewermediafocus.h"
#include "llvoavatar.h"

View File

@@ -50,6 +50,7 @@
#include "llviewerobject.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llworld.h"
#include "llui.h"

View File

@@ -44,6 +44,7 @@
#include "llstatusbar.h"
#include "llviewerparcelmgr.h"
#include "llviewerwindow.h"
#include "llwindow.h"
//
// Member functions

View File

@@ -48,6 +48,7 @@
#include "llviewerobject.h"
#include "llviewerobjectlist.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llviewercamera.h"
#include "llglheaders.h"

View File

@@ -34,18 +34,10 @@
#include "llviewercamera.h"
#include <iomanip> // for setprecision
#include "llquaternion.h"
#include "llagent.h"
#include "llagentcamera.h"
#include "llmatrix4a.h"
#include "llviewercontrol.h"
#include "lldrawable.h"
#include "llface.h"
#include "llgl.h"
#include "llglheaders.h"
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
@@ -54,6 +46,17 @@
#include "lltoolmgr.h"
#include "llviewerjoystick.h"
// Linden library includes
#include "lldrawable.h"
#include "llface.h"
#include "llgl.h"
#include "llglheaders.h"
#include "llquaternion.h"
#include "llwindow.h" // getPixelAspectRatio()
// System includes
#include <iomanip> // for setprecision
U32 LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD;
//glu pick matrix implementation borrowed from Mesa3D

View File

@@ -34,8 +34,9 @@
#define LL_LLVIEWERCAMERA_H
#include "llcamera.h"
#include "lltimer.h"
#include "llsingleton.h"
#include "llstat.h"
#include "lltimer.h"
#include "m4math.h"
class LLCoordGL;

View File

@@ -54,6 +54,7 @@
#include "llviewertexturelist.h"
#include "llviewerthrottle.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llvoavatar.h"
#include "llvoiceclient.h"
#include "llvosky.h"

View File

@@ -44,6 +44,7 @@
#include "llvoavatar.h"
#include "llviewerobject.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llnetmap.h"
#include "llagent.h"
#include "llagentcamera.h"

View File

@@ -1222,11 +1222,16 @@ void LLViewerWindow::handleMouseMove(LLWindow *window, LLCoordGL pos, MASK mask
LLCoordGL prev_saved_mouse_point = mCurrentMousePoint;
LLCoordGL mouse_point(x, y);
if (mouse_point != mCurrentMousePoint)
{
gMouseIdleTimer.reset();
}
saveLastMouse(mouse_point);
BOOL mouse_actually_moved = !gFocusMgr.getMouseCapture() && // mouse is not currenty captured
((prev_saved_mouse_point.mX != mCurrentMousePoint.mX) || (prev_saved_mouse_point.mY != mCurrentMousePoint.mY)); // mouse moved from last recorded position
gMouseIdleTimer.reset();
mWindow->showCursorFromMouseMove();
@@ -1574,6 +1579,7 @@ LLViewerWindow::LLViewerWindow(
S32 width, S32 height,
BOOL fullscreen, BOOL ignore_pixel_depth)
:
mWindow(NULL),
mActive(TRUE),
mWantFullscreen(fullscreen),
mShowFullscreenProgress(FALSE),
@@ -1608,15 +1614,33 @@ LLViewerWindow::LLViewerWindow(
resetSnapshotLoc();
// create window
mWindow = LLWindowManager::createWindow(
mWindow = LLWindowManager::createWindow(this,
title, name, x, y, width, height, 0,
fullscreen,
gNoRender,
gSavedSettings.getBOOL("DisableVerticalSync"),
!gNoRender,
ignore_pixel_depth,
gSavedSettings.getU32("RenderFSAASamples"));
gSavedSettings.getBOOL("RenderUseFBO") ? 0 : gSavedSettings.getU32("RenderFSAASamples")); //don't use window level anti-aliasing if FBOs are enabled
if (NULL == mWindow)
{
LLSplashScreen::update("Graphics Initialization Failed. Please Update Your Graphics Driver!");
LL_WARNS("Window") << "Failed to create window, to be shutting Down, be sure your graphics driver is updated." << llendl ;
ms_sleep(5000) ; //wait for 5 seconds.
LLSplashScreen::update("Shutting down...");
#if LL_LINUX || LL_SOLARIS
llwarns << "Unable to create window, be sure screen is set at 32-bit color and your graphics driver is configured correctly. See README-linux.txt or README-solaris.txt for further information."
<< llendl;
#else
LL_WARNS("Window") << "Unable to create window, be sure screen is set at 32-bit color in Control Panels->Display->Settings"
<< LL_ENDL;
#endif
LLAppViewer::instance()->fastQuit(1);
}
if (!LLAppViewer::instance()->restoreErrorTrap())
{
LL_WARNS("Window") << " Someone took over my signal/exception handler (post createWindow)!" << LL_ENDL;
@@ -1631,19 +1655,6 @@ LLViewerWindow::LLViewerWindow(
gSavedSettings.setS32("FullScreenWidth",scr.mX);
gSavedSettings.setS32("FullScreenHeight",scr.mY);
}
if (NULL == mWindow)
{
LLSplashScreen::update("Shutting down...");
#if LL_LINUX || LL_SOLARIS
llwarns << "Unable to create window, be sure screen is set at 32-bit color and your graphics driver is configured correctly. See README-linux.txt or README-solaris.txt for further information."
<< llendl;
#else
LL_WARNS("Window") << "Unable to create window, be sure screen is set at 32-bit color in Control Panels->Display->Settings"
<< LL_ENDL;
#endif
LLAppViewer::instance()->forceExit(1);
}
// Get the real window rect the window was created with (since there are various OS-dependent reasons why
// the size of a window or fullscreen context may have been adjusted slightly...)
@@ -1698,12 +1709,8 @@ LLViewerWindow::LLViewerWindow(
mInitAlert = "DisplaySettingsNoShaders";
LLFeatureManager::getInstance()->setGraphicsLevel(0, false);
gSavedSettings.setU32("RenderQualityPerformance", 0);
}
// set callbacks
mWindow->setCallbacks(this);
// Init the image list. Must happen after GL is initialized and before the images that
// LLViewerWindow needs are requested.
LLImageGL::initClass(LLViewerTexture::MAX_GL_IMAGE_CATEGORY) ;
@@ -4729,7 +4736,20 @@ void LLViewerWindow::drawMouselookInstructions()
LLFontGL::LEFT, LLFontGL::TOP);
}
void* LLViewerWindow::getPlatformWindow() const
{
return mWindow->getPlatformWindow();
}
void* LLViewerWindow::getMediaWindow() const
{
return mWindow->getMediaWindow();
}
void LLViewerWindow::focusClient() const
{
return mWindow->focusClient();
}
S32 LLViewerWindow::getWindowHeight() const
{
return mWindowRectScaled.getHeight();
@@ -4793,10 +4813,7 @@ void LLViewerWindow::setShowProgress(const BOOL show)
}
}
BOOL LLViewerWindow::getShowProgress() const
{
return (mProgressView && mProgressView->getVisible());
}
void LLViewerWindow::moveProgressViewToFront()
@@ -4808,6 +4825,11 @@ void LLViewerWindow::moveProgressViewToFront()
}
}
BOOL LLViewerWindow::getShowProgress() const
{
return (mProgressView && mProgressView->getVisible());
}
void LLViewerWindow::setProgressString(const std::string& string)
{
if (mProgressView)

View File

@@ -44,9 +44,11 @@
#include "v3dmath.h"
#include "v2math.h"
#include "llwindow.h"
#include "llcursortypes.h"
#include "llwindowcallbacks.h"
#include "lltimer.h"
#include "llstat.h"
#include "llmousehandler.h"
#include "llalertdialog.h"
#include "llnotifications.h"
@@ -58,8 +60,9 @@ class LLTool;
class LLVelocityBar;
class LLTextBox;
class LLImageRaw;
class LLImageFormatted;
class LLHUDIcon;
class LLMouseHandler;
class LLWindow;
class AIFilePicker;
#define PICK_HALF_WIDTH 5
@@ -67,6 +70,17 @@ class AIFilePicker;
class LLPickInfo
{
public:
typedef enum e_pick_type
{
PICK_OBJECT,
PICK_FLORA,
PICK_LAND,
PICK_ICON,
PICK_PARCEL_WALL,
PICK_INVALID
} EPickType;
public:
LLPickInfo();
LLPickInfo(const LLCoordGL& mouse_pos,
@@ -80,20 +94,11 @@ public:
void fetchResults();
LLPointer<LLViewerObject> getObject() const;
LLUUID getObjectID() const { return mObjectID; }
bool isValid() const { return mPickType != PICK_INVALID; }
void drawPickBuffer() const;
static bool isFlora(LLViewerObject* object);
typedef enum e_pick_type
{
PICK_OBJECT,
PICK_FLORA,
PICK_LAND,
PICK_ICON,
PICK_PARCEL_WALL,
PICK_INVALID
} EPickType;
public:
LLCoordGL mMousePt;
MASK mKeyMask;
@@ -216,9 +221,9 @@ public:
LLWindow* getWindow() const { return mWindow; }
void* getPlatformWindow() const { return mWindow->getPlatformWindow(); }
void* getMediaWindow() const { return mWindow->getMediaWindow(); }
void focusClient() const { return mWindow->focusClient(); };
void* getPlatformWindow() const;
void* getMediaWindow() const;
void focusClient() const;
LLCoordGL getLastMouse() const { return mLastMousePoint; }
S32 getLastMouseX() const { return mLastMousePoint.mX; }

View File

@@ -36,6 +36,7 @@
#include "llweb.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llviewercontrol.h"
#include "llfloatermediabrowser.h"
@@ -64,7 +65,7 @@ void LLWeb::loadURL(const std::string& url)
void LLWeb::loadURLExternal(const std::string& url)
{
std::string escaped_url = escapeURL(url);
gViewerWindow->getWindow()->spawnWebBrowser(escaped_url);
gViewerWindow->getWindow()->spawnWebBrowser(escaped_url,true);
}

View File

@@ -52,6 +52,7 @@
#include "llui.h"
#include "llglheaders.h"
#include "llrender.h"
#include "llwindow.h"
// newview includes
#include "llagent.h"