Merge remote-tracking branch 'origin/master'
commit
763f7b7f9a
|
|
@ -38,9 +38,10 @@ endif ()
|
|||
# windows) and CMAKE_BUILD_TYPE on Makefile based generators (like linux). The reason for this is
|
||||
# that CMAKE_BUILD_TYPE is essentially meaningless at configuration time for IDE generators and
|
||||
# CMAKE_CFG_INTDIR is meaningless at build time for Makefile generators
|
||||
|
||||
link_directories(${AUTOBUILD_INSTALL_DIR}/lib/$<LOWER_CASE:$<CONFIG>>)
|
||||
link_directories(${AUTOBUILD_INSTALL_DIR}/lib/release)
|
||||
if(NOT DARWIN)
|
||||
link_directories(${AUTOBUILD_INSTALL_DIR}/lib/$<LOWER_CASE:$<CONFIG>>)
|
||||
link_directories(${AUTOBUILD_INSTALL_DIR}/lib/release)
|
||||
endif(NOT DARWIN)
|
||||
|
||||
add_library( ll::oslibraries INTERFACE IMPORTED )
|
||||
|
||||
|
|
@ -74,6 +75,8 @@ else()
|
|||
|
||||
find_library(APPKIT_LIBRARY AppKit)
|
||||
find_library(COREAUDIO_LIBRARY CoreAudio)
|
||||
find_library(COREGRAPHICS_LIBRARY CoreGraphics)
|
||||
find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox)
|
||||
|
||||
target_link_libraries( ll::oslibraries INTERFACE
|
||||
${COCOA_LIBRARY}
|
||||
|
|
@ -82,6 +85,8 @@ else()
|
|||
${CARBON_LIBRARY}
|
||||
${APPKIT_LIBRARY}
|
||||
${COREAUDIO_LIBRARY}
|
||||
${AUDIOTOOLBOX_LIBRARY}
|
||||
${COREGRAPHICS_LIBRARY}
|
||||
)
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -63,6 +63,10 @@ LLGLTexture::~LLGLTexture()
|
|||
void LLGLTexture::init()
|
||||
{
|
||||
mBoostLevel = LLGLTexture::BOOST_NONE;
|
||||
// <FS:minerjr> [FIRE-36016] - Re-added Store/Restore boost levels of selected objects
|
||||
// Added a previous boost level to allow for restoring boost after BOOST_SELECTED is applied
|
||||
mPrevBoostLevel = LLGLTexture::BOOST_NONE;
|
||||
// </FS:minerjr> [FIRE-36016]
|
||||
|
||||
mFullWidth = 0;
|
||||
mFullHeight = 0;
|
||||
|
|
@ -107,6 +111,20 @@ void LLGLTexture::setBoostLevel(S32 level)
|
|||
}
|
||||
}
|
||||
|
||||
// <FS:minerjr> [FIRE-36016] - Re-added Store/Restore boost levels of selected objects
|
||||
// Changes the current boost level back to the previous value
|
||||
void LLGLTexture::restoreBoostLevel()
|
||||
{
|
||||
mBoostLevel = mPrevBoostLevel;
|
||||
}
|
||||
|
||||
// Stores the current boost level in the previous boost
|
||||
void LLGLTexture::storeBoostLevel()
|
||||
{
|
||||
mPrevBoostLevel = mBoostLevel;
|
||||
}
|
||||
// </FS:minerjr> [FIRE-36016]
|
||||
|
||||
void LLGLTexture::forceActive()
|
||||
{
|
||||
mTextureState = ACTIVE ;
|
||||
|
|
|
|||
|
|
@ -101,6 +101,10 @@ public:
|
|||
|
||||
void setBoostLevel(S32 level);
|
||||
S32 getBoostLevel() { return mBoostLevel; }
|
||||
// <FS:minerjr> [FIRE-36016] - Re-added Store/Restore boost levels of selected objects
|
||||
void restoreBoostLevel(); // Now restores the mBoostLevel with the mPrevBoostLevel
|
||||
void storeBoostLevel(); // Stores the current mBoostLevel in mPrevBoostLevel
|
||||
// </FS:minerjr> [FIRE-36016]
|
||||
|
||||
S32 getFullWidth() const { return mFullWidth; }
|
||||
S32 getFullHeight() const { return mFullHeight; }
|
||||
|
|
@ -183,6 +187,9 @@ public:
|
|||
|
||||
protected:
|
||||
S32 mBoostLevel; // enum describing priority level
|
||||
// <FS:minerjr> [FIRE-36016] - Re-added Store/Restore boost levels of selected objects
|
||||
S32 mPrevBoostLevel; // enum describing priority level (Previous Value for BOOST_SELECTION restore)
|
||||
// </FS:minerjr> [FIRE-36016]
|
||||
U32 mFullWidth;
|
||||
U32 mFullHeight;
|
||||
bool mUseMipMaps;
|
||||
|
|
|
|||
|
|
@ -2464,7 +2464,7 @@ void LLFloater::drawConeToOwner(F32 &context_cone_opacity,
|
|||
LLRect local_rect = getLocalRect();
|
||||
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
LLGLEnable(GL_CULL_FACE);
|
||||
LLGLEnable cull_face(GL_CULL_FACE);
|
||||
gGL.begin(LLRender::TRIANGLE_STRIP);
|
||||
{
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
|
||||
|
|
|
|||
|
|
@ -1495,6 +1495,10 @@ void freePeerConnection(LLWebRTCPeerConnectionInterface* peer_connection)
|
|||
|
||||
void init(LLWebRTCLogCallback* logCallback)
|
||||
{
|
||||
if (gWebRTCImpl)
|
||||
{
|
||||
return;
|
||||
}
|
||||
gWebRTCImpl = new LLWebRTCImpl(logCallback);
|
||||
gWebRTCImpl->init();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -603,7 +603,7 @@ void FSManipRotateJoint::renderCenterCircle(const F32 radius, const LLColor4& no
|
|||
LLGLDepthTest gls_depth(GL_FALSE);
|
||||
|
||||
constexpr int segments = 64;
|
||||
glLineWidth(6.0f); // Set the desired line thickness
|
||||
gGL.setLineWidth(6.0f); // Set the desired line thickness
|
||||
|
||||
// Compute a scale factor that already factors in the radius.
|
||||
float scale = radius;
|
||||
|
|
@ -637,7 +637,7 @@ void FSManipRotateJoint::renderCenterCircle(const F32 radius, const LLColor4& no
|
|||
}
|
||||
gGL.end();
|
||||
|
||||
glLineWidth(1.0f); // Reset the line width.
|
||||
gGL.setLineWidth(1.0f); // Reset the line width.
|
||||
}
|
||||
gGL.popMatrix();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4336,6 +4336,14 @@ void LLViewerObject::boostTexturePriority(bool boost_children /* = true */)
|
|||
S32 tex_count = getNumTEs();
|
||||
for (i = 0; i < tex_count; i++)
|
||||
{
|
||||
// <FS:minerjr> [FIRE-36016] - Re-added Store/Restore boost levels of selected objects
|
||||
// This fixes textures becoming blury (Esepecially with Bias > 1.0f) after an object is selected and unselected.
|
||||
// If this is changing the boost level for the TEImage for the first time, store the boost level before modifying it.
|
||||
if (getTEImage(i)->getBoostLevel() != LLGLTexture::BOOST_SELECTED)
|
||||
{
|
||||
getTEImage(i)->storeBoostLevel();
|
||||
}
|
||||
// </FS:minerjr> [FIRE-36016]
|
||||
getTEImage(i)->setBoostLevel(LLGLTexture::BOOST_SELECTED);
|
||||
}
|
||||
|
||||
|
|
@ -4345,7 +4353,21 @@ void LLViewerObject::boostTexturePriority(bool boost_children /* = true */)
|
|||
if (sculpt_params)
|
||||
{
|
||||
LLUUID sculpt_id = sculpt_params->getSculptTexture();
|
||||
LLViewerTextureManager::getFetchedTexture(sculpt_id, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)->setBoostLevel(LLGLTexture::BOOST_SELECTED);
|
||||
// <FS:minerjr> [FIRE-36016] - Re-added Store/Restore boost levels of selected objects
|
||||
//LLViewerTextureManager::getFetchedTexture(sculpt_id, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)->setBoostLevel(LLGLTexture::BOOST_SELECTED);
|
||||
// This fixes textures becoming blury (Esepecially with Bias > 1.0f) after an object is selected and unselected.
|
||||
// If this is changing the boost level for the sculpted for the first time, store the boost level before modifying it.
|
||||
LLViewerFetchedTexture* sculptedTexture = LLViewerTextureManager::getFetchedTexture(sculpt_id, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
|
||||
if (sculptedTexture)
|
||||
{
|
||||
// If the texture is already boost selected, don't store the boost level again. Otherwise, it will overwrite the saved boost level with itself.
|
||||
if (sculptedTexture->getBoostLevel() != LLGLTexture::BOOST_SELECTED)
|
||||
{
|
||||
sculptedTexture->storeBoostLevel();
|
||||
}
|
||||
sculptedTexture->setBoostLevel(LLGLTexture::BOOST_SELECTED);
|
||||
}
|
||||
// </FS:minerjr> [FIRE-36016]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -825,7 +825,7 @@ void LLViewerParcelOverlay::renderPropertyLinesOnMinimap(F32 scale_pixels_per_me
|
|||
const S32 GRIDS_PER_EDGE = mParcelGridsPerEdge;
|
||||
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
glLineWidth(1.0f);
|
||||
gGL.setLineWidth(1.0f);
|
||||
gGL.color4fv(parcel_outline_color);
|
||||
for (S32 i = 0; i <= GRIDS_PER_EDGE; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3150,7 +3150,12 @@ void LLViewerLODTexture::processTextureStats()
|
|||
// unset it immediately after we consume it
|
||||
if (getBoostLevel() == BOOST_SELECTED)
|
||||
{
|
||||
setBoostLevel(BOOST_NONE);
|
||||
// <FS:minerjr> [FIRE-36016] - Re-added Store/Restore boost levels of selected objects
|
||||
//setBoostLevel(BOOST_NONE);
|
||||
// Restore the boost level instead of just setting to BOOST_NONE
|
||||
// Can cause Sculpts and other boosted objects to lose boost and become subject to discard levels with Bias over 1.0f
|
||||
restoreBoostLevel();
|
||||
// </FS:minerjr>> [FIRE-36016]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -273,6 +273,11 @@ void LLWebRTCVoiceClient::cleanupSingleton()
|
|||
void LLWebRTCVoiceClient::init(LLPumpIO* pump)
|
||||
{
|
||||
// constructor will set up LLVoiceClient::getInstance()
|
||||
initWebRTC();
|
||||
}
|
||||
|
||||
void LLWebRTCVoiceClient::initWebRTC()
|
||||
{
|
||||
llwebrtc::init(this);
|
||||
|
||||
mWebRTCDeviceInterface = llwebrtc::getDeviceInterface();
|
||||
|
|
@ -292,6 +297,7 @@ void LLWebRTCVoiceClient::terminate()
|
|||
|
||||
mVoiceEnabled = false;
|
||||
llwebrtc::terminate();
|
||||
mWebRTCDeviceInterface = nullptr;
|
||||
|
||||
sShuttingDown = true;
|
||||
}
|
||||
|
|
@ -1813,6 +1819,15 @@ void LLWebRTCVoiceClient::onChangeDetailed(const LLMute& mute)
|
|||
}
|
||||
}
|
||||
|
||||
void LLWebRTCVoiceClient::userAuthorized(const std::string& user_id, const LLUUID& agentID)
|
||||
{
|
||||
if (sShuttingDown)
|
||||
{
|
||||
sShuttingDown = false; // was terminated, restart
|
||||
initWebRTC();
|
||||
}
|
||||
}
|
||||
|
||||
void LLWebRTCVoiceClient::predSetUserMute(const LLWebRTCVoiceClient::sessionStatePtr_t &session, const LLUUID &id, bool mute)
|
||||
{
|
||||
session->setUserMute(id, mute);
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ public:
|
|||
//@}
|
||||
|
||||
// authorize the user
|
||||
void userAuthorized(const std::string &user_id, const LLUUID &agentID) override {};
|
||||
void userAuthorized(const std::string &user_id, const LLUUID &agentID) override;
|
||||
|
||||
|
||||
void OnConnectionEstablished(const std::string& channelID, const LLUUID& regionID);
|
||||
|
|
@ -443,6 +443,8 @@ public:
|
|||
boost::signals2::connection mAvatarNameCacheConnection;
|
||||
|
||||
private:
|
||||
// init or restart the WebRTC device interface.
|
||||
void initWebRTC();
|
||||
|
||||
// Coroutine support methods
|
||||
//---
|
||||
|
|
|
|||
|
|
@ -4614,7 +4614,7 @@ void LLPipeline::renderSnapshotGuidesOverlay()
|
|||
gGL.matrixMode(LLRender::MM_MODELVIEW);
|
||||
gGL.pushMatrix();
|
||||
gGL.loadIdentity();
|
||||
gGLLastMatrix = NULL;
|
||||
gGLLastMatrix = nullptr;
|
||||
|
||||
const LLColor4 line_color(mSnapshotGuideState.color, alpha);
|
||||
gGL.color4fv(line_color.mV);
|
||||
|
|
@ -4644,261 +4644,260 @@ void LLPipeline::renderSnapshotGuidesOverlay()
|
|||
|
||||
switch (mSnapshotGuideState.style)
|
||||
{
|
||||
case SnapshotGuideState::Style::RuleOfThirds:
|
||||
{
|
||||
const F32 offsets[] = { 1.f / 3.f, 2.f / 3.f };
|
||||
for (F32 offset : offsets)
|
||||
case SnapshotGuideState::Style::RuleOfThirds:
|
||||
{
|
||||
draw_vertical_norm(offset);
|
||||
draw_horizontal_norm(offset);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SnapshotGuideState::Style::GoldenRatio:
|
||||
{
|
||||
constexpr F32 phi = 1.61803398875f;
|
||||
const SnapshotGuideState::GoldenOrientation orientation = mSnapshotGuideState.golden_orientation;
|
||||
|
||||
const F32 scale = llmin(frame_width / phi, frame_height);
|
||||
if (scale <= 0.f)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
const F32 golden_width = phi * scale;
|
||||
const F32 golden_height = scale;
|
||||
const F32 pad_x = frame_width - golden_width;
|
||||
const F32 pad_y = frame_height - golden_height;
|
||||
|
||||
F32 anchor_x = left_px;
|
||||
F32 anchor_y = bottom_px;
|
||||
switch (orientation)
|
||||
{
|
||||
case SnapshotGuideState::GoldenOrientation::TopLeft:
|
||||
anchor_y += pad_y;
|
||||
break;
|
||||
case SnapshotGuideState::GoldenOrientation::TopRight:
|
||||
anchor_x += pad_x;
|
||||
anchor_y += pad_y;
|
||||
break;
|
||||
case SnapshotGuideState::GoldenOrientation::BottomRight:
|
||||
anchor_x += pad_x;
|
||||
break;
|
||||
case SnapshotGuideState::GoldenOrientation::BottomLeft:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
auto map_point = [&](F32 local_x, F32 local_y) -> LLVector2
|
||||
{
|
||||
F32 x = local_x;
|
||||
F32 y = local_y;
|
||||
|
||||
if (orientation == SnapshotGuideState::GoldenOrientation::TopLeft ||
|
||||
orientation == SnapshotGuideState::GoldenOrientation::BottomLeft)
|
||||
constexpr std::array<F32, 2> offsets = { 1.f / 3.f, 2.f / 3.f };
|
||||
for (F32 offset : offsets)
|
||||
{
|
||||
x = golden_width - local_x;
|
||||
draw_vertical_norm(offset);
|
||||
draw_horizontal_norm(offset);
|
||||
}
|
||||
|
||||
if (orientation == SnapshotGuideState::GoldenOrientation::BottomLeft ||
|
||||
orientation == SnapshotGuideState::GoldenOrientation::BottomRight)
|
||||
{
|
||||
y = golden_height - local_y;
|
||||
}
|
||||
|
||||
return LLVector2(anchor_x + x, anchor_y + y);
|
||||
};
|
||||
|
||||
std::vector<std::pair<LLVector2, LLVector2>> line_segments;
|
||||
line_segments.reserve(24);
|
||||
|
||||
auto add_line = [&](F32 x0, F32 y0, F32 x1, F32 y1)
|
||||
break;
|
||||
}
|
||||
case SnapshotGuideState::Style::GoldenRatio:
|
||||
{
|
||||
line_segments.emplace_back(map_point(x0, y0), map_point(x1, y1));
|
||||
};
|
||||
constexpr F32 phi = 1.61803398875f;
|
||||
const SnapshotGuideState::GoldenOrientation orientation = mSnapshotGuideState.golden_orientation;
|
||||
|
||||
// Outline of the fitted golden rectangle.
|
||||
add_line(0.f, 0.f, golden_width, 0.f);
|
||||
add_line(0.f, golden_height, golden_width, golden_height);
|
||||
add_line(0.f, 0.f, 0.f, golden_height);
|
||||
add_line(golden_width, 0.f, golden_width, golden_height);
|
||||
|
||||
// Generate subdivision lines while we walk the squares.
|
||||
F32 x0 = 0.f;
|
||||
F32 y0 = 0.f;
|
||||
F32 x1 = golden_width;
|
||||
F32 y1 = golden_height;
|
||||
|
||||
for (U32 step = 0; step < 12; ++step)
|
||||
{
|
||||
const F32 width = x1 - x0;
|
||||
const F32 height = y1 - y0;
|
||||
if (width <= 1.f || height <= 1.f)
|
||||
const F32 scale = llmin(frame_width / phi, frame_height);
|
||||
if (scale <= 0.f)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (step % 4 == 0)
|
||||
{
|
||||
x0 += height;
|
||||
add_line(x0, y0, x0, y1);
|
||||
}
|
||||
else if (step % 4 == 1)
|
||||
{
|
||||
y0 += width;
|
||||
add_line(x0, y0, x1, y0);
|
||||
}
|
||||
else if (step % 4 == 2)
|
||||
{
|
||||
x1 -= height;
|
||||
add_line(x1, y0, x1, y1);
|
||||
}
|
||||
else
|
||||
{
|
||||
y1 -= width;
|
||||
add_line(x0, y1, x1, y1);
|
||||
}
|
||||
}
|
||||
const F32 golden_width = phi * scale;
|
||||
const F32 golden_height = scale;
|
||||
const F32 pad_x = frame_width - golden_width;
|
||||
const F32 pad_y = frame_height - golden_height;
|
||||
|
||||
auto draw_golden_spiral = [&](U32 max_depth)
|
||||
{
|
||||
gGL.begin(LLRender::LINE_STRIP);
|
||||
|
||||
F32 spiral_x0 = 0.f;
|
||||
F32 spiral_y0 = 0.f;
|
||||
F32 spiral_x1 = golden_width;
|
||||
F32 spiral_y1 = golden_height;
|
||||
|
||||
for (U32 step = 0; step < max_depth; ++step)
|
||||
F32 anchor_x = left_px;
|
||||
F32 anchor_y = bottom_px;
|
||||
switch (orientation)
|
||||
{
|
||||
const F32 width = spiral_x1 - spiral_x0;
|
||||
const F32 height = spiral_y1 - spiral_y0;
|
||||
case SnapshotGuideState::GoldenOrientation::TopLeft:
|
||||
anchor_y += pad_y;
|
||||
break;
|
||||
case SnapshotGuideState::GoldenOrientation::TopRight:
|
||||
anchor_x += pad_x;
|
||||
anchor_y += pad_y;
|
||||
break;
|
||||
case SnapshotGuideState::GoldenOrientation::BottomRight:
|
||||
anchor_x += pad_x;
|
||||
break;
|
||||
case SnapshotGuideState::GoldenOrientation::BottomLeft:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
auto map_point = [&](F32 local_x, F32 local_y) -> LLVector2
|
||||
{
|
||||
F32 x = local_x;
|
||||
F32 y = local_y;
|
||||
|
||||
if (orientation == SnapshotGuideState::GoldenOrientation::TopLeft ||
|
||||
orientation == SnapshotGuideState::GoldenOrientation::BottomLeft)
|
||||
{
|
||||
x = golden_width - local_x;
|
||||
}
|
||||
|
||||
if (orientation == SnapshotGuideState::GoldenOrientation::BottomLeft ||
|
||||
orientation == SnapshotGuideState::GoldenOrientation::BottomRight)
|
||||
{
|
||||
y = golden_height - local_y;
|
||||
}
|
||||
|
||||
return LLVector2(anchor_x + x, anchor_y + y);
|
||||
};
|
||||
|
||||
std::vector<std::pair<LLVector2, LLVector2>> line_segments;
|
||||
line_segments.reserve(24);
|
||||
|
||||
auto add_line = [&](F32 x0, F32 y0, F32 x1, F32 y1)
|
||||
{
|
||||
line_segments.emplace_back(map_point(x0, y0), map_point(x1, y1));
|
||||
};
|
||||
|
||||
// Outline of the fitted golden rectangle.
|
||||
add_line(0.f, 0.f, golden_width, 0.f);
|
||||
add_line(0.f, golden_height, golden_width, golden_height);
|
||||
add_line(0.f, 0.f, 0.f, golden_height);
|
||||
add_line(golden_width, 0.f, golden_width, golden_height);
|
||||
|
||||
// Generate subdivision lines while we walk the squares.
|
||||
F32 x0 = 0.f;
|
||||
F32 y0 = 0.f;
|
||||
F32 x1 = golden_width;
|
||||
F32 y1 = golden_height;
|
||||
|
||||
for (U32 step = 0; step < 12; ++step)
|
||||
{
|
||||
const F32 width = x1 - x0;
|
||||
const F32 height = y1 - y0;
|
||||
if (width <= 1.f || height <= 1.f)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
F32 size = 0.f;
|
||||
F32 cx = 0.f;
|
||||
F32 cy = 0.f;
|
||||
F32 start_angle = 0.f;
|
||||
F32 end_angle = 0.f;
|
||||
|
||||
switch (step % 4)
|
||||
{
|
||||
case 0: // left square
|
||||
size = height;
|
||||
cx = spiral_x0 + size;
|
||||
cy = spiral_y0 + size;
|
||||
start_angle = F_PI;
|
||||
end_angle = 1.5f * F_PI;
|
||||
spiral_x0 += size;
|
||||
break;
|
||||
case 1: // bottom square
|
||||
size = width;
|
||||
cx = spiral_x0;
|
||||
cy = spiral_y0 + size;
|
||||
start_angle = 1.5f * F_PI;
|
||||
end_angle = 2.f * F_PI;
|
||||
spiral_y0 += size;
|
||||
break;
|
||||
case 2: // right square
|
||||
size = height;
|
||||
cx = spiral_x1 - size;
|
||||
cy = spiral_y0;
|
||||
start_angle = 0.f;
|
||||
end_angle = F_PI_BY_TWO;
|
||||
spiral_x1 -= size;
|
||||
break;
|
||||
case 3: // top square
|
||||
default:
|
||||
size = width;
|
||||
cx = spiral_x0 + size;
|
||||
cy = spiral_y1 - size;
|
||||
start_angle = F_PI_BY_TWO;
|
||||
end_angle = F_PI;
|
||||
spiral_y1 -= size;
|
||||
break;
|
||||
}
|
||||
|
||||
if (size <= 0.f)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
const S32 segments = llclamp((S32)(size / 4.f), 12, 64);
|
||||
for (S32 i = 0; i <= segments; ++i)
|
||||
{
|
||||
const F32 t = start_angle + (end_angle - start_angle) * (F32)i / (F32)segments;
|
||||
const F32 local_x = cx + cosf(t) * size;
|
||||
const F32 local_y = cy + sinf(t) * size;
|
||||
LLVector2 mapped = map_point(local_x, local_y);
|
||||
gGL.vertex2f(mapped.mV[0], mapped.mV[1]);
|
||||
case 0:
|
||||
x0 += height;
|
||||
add_line(x0, y0, x0, y1);
|
||||
break;
|
||||
case 1:
|
||||
y0 += width;
|
||||
add_line(x0, y0, x1, y0);
|
||||
break;
|
||||
case 2:
|
||||
x1 -= height;
|
||||
add_line(x1, y0, x1, y1);
|
||||
break;
|
||||
default:
|
||||
y1 -= width;
|
||||
add_line(x0, y1, x1, y1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gGL.end();
|
||||
};
|
||||
|
||||
gGL.flush();
|
||||
const F32 line_width = llmax(thickness, 1.f);
|
||||
glLineWidth(line_width);
|
||||
draw_golden_spiral(12);
|
||||
glLineWidth(1.f);
|
||||
|
||||
if (!line_segments.empty())
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(line_width);
|
||||
gGL.begin(LLRender::LINES);
|
||||
for (const auto& segment : line_segments)
|
||||
auto draw_golden_spiral = [&](U32 max_depth)
|
||||
{
|
||||
gGL.vertex2f(segment.first.mV[0], segment.first.mV[1]);
|
||||
gGL.vertex2f(segment.second.mV[0], segment.second.mV[1]);
|
||||
gGL.begin(LLRender::LINE_STRIP);
|
||||
|
||||
F32 spiral_x0 = 0.f;
|
||||
F32 spiral_y0 = 0.f;
|
||||
F32 spiral_x1 = golden_width;
|
||||
F32 spiral_y1 = golden_height;
|
||||
|
||||
for (U32 step = 0; step < max_depth; ++step)
|
||||
{
|
||||
const F32 width = spiral_x1 - spiral_x0;
|
||||
const F32 height = spiral_y1 - spiral_y0;
|
||||
if (width <= 1.f || height <= 1.f)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
F32 size = 0.f;
|
||||
F32 cx = 0.f;
|
||||
F32 cy = 0.f;
|
||||
F32 start_angle = 0.f;
|
||||
F32 end_angle = 0.f;
|
||||
|
||||
switch (step % 4)
|
||||
{
|
||||
case 0: // left square
|
||||
size = height;
|
||||
cx = spiral_x0 + size;
|
||||
cy = spiral_y0 + size;
|
||||
start_angle = F_PI;
|
||||
end_angle = 1.5f * F_PI;
|
||||
spiral_x0 += size;
|
||||
break;
|
||||
case 1: // bottom square
|
||||
size = width;
|
||||
cx = spiral_x0;
|
||||
cy = spiral_y0 + size;
|
||||
start_angle = 1.5f * F_PI;
|
||||
end_angle = 2.f * F_PI;
|
||||
spiral_y0 += size;
|
||||
break;
|
||||
case 2: // right square
|
||||
size = height;
|
||||
cx = spiral_x1 - size;
|
||||
cy = spiral_y0;
|
||||
start_angle = 0.f;
|
||||
end_angle = F_PI_BY_TWO;
|
||||
spiral_x1 -= size;
|
||||
break;
|
||||
case 3: // top square
|
||||
default:
|
||||
size = width;
|
||||
cx = spiral_x0 + size;
|
||||
cy = spiral_y1 - size;
|
||||
start_angle = F_PI_BY_TWO;
|
||||
end_angle = F_PI;
|
||||
spiral_y1 -= size;
|
||||
break;
|
||||
}
|
||||
|
||||
if (size <= 0.f)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
const S32 segments = llclamp((S32)(size / 4.f), 12, 64);
|
||||
for (S32 i = 0; i <= segments; ++i)
|
||||
{
|
||||
const F32 t = start_angle + (end_angle - start_angle) * (F32)i / (F32)segments;
|
||||
const F32 local_x = cx + cosf(t) * size;
|
||||
const F32 local_y = cy + sinf(t) * size;
|
||||
LLVector2 mapped = map_point(local_x, local_y);
|
||||
gGL.vertex2f(mapped.mV[0], mapped.mV[1]);
|
||||
}
|
||||
}
|
||||
|
||||
gGL.end();
|
||||
};
|
||||
|
||||
gGL.flush();
|
||||
const F32 line_width = llmax(thickness, 1.f);
|
||||
gGL.setLineWidth(line_width);
|
||||
draw_golden_spiral(12);
|
||||
gGL.setLineWidth(1.f);
|
||||
|
||||
if (!line_segments.empty())
|
||||
{
|
||||
gGL.flush();
|
||||
gGL.setLineWidth(line_width);
|
||||
gGL.begin(LLRender::LINES);
|
||||
for (const auto& segment : line_segments)
|
||||
{
|
||||
gGL.vertex2f(segment.first.mV[VX], segment.first.mV[VY]);
|
||||
gGL.vertex2f(segment.second.mV[VX], segment.second.mV[VY]);
|
||||
}
|
||||
gGL.end();
|
||||
gGL.setLineWidth(1.f);
|
||||
}
|
||||
gGL.end();
|
||||
glLineWidth(1.f);
|
||||
break;
|
||||
}
|
||||
case SnapshotGuideState::Style::Diagonal:
|
||||
{
|
||||
const F32 line_width = llmax(thickness, 1.f);
|
||||
gGL.flush();
|
||||
gGL.setLineWidth(line_width);
|
||||
gGL.begin(LLRender::LINES);
|
||||
gGL.vertex2f(left_px, bottom_px);
|
||||
gGL.vertex2f(right_px, top_px);
|
||||
gGL.vertex2f(left_px, top_px);
|
||||
gGL.vertex2f(right_px, bottom_px);
|
||||
gGL.end();
|
||||
gGL.setLineWidth(1.f);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SnapshotGuideState::Style::Diagonal:
|
||||
{
|
||||
const F32 line_width = llmax(thickness, 1.f);
|
||||
gGL.flush();
|
||||
glLineWidth(line_width);
|
||||
gGL.begin(LLRender::LINES);
|
||||
gGL.vertex2f(left_px, bottom_px);
|
||||
gGL.vertex2f(right_px, top_px);
|
||||
gGL.vertex2f(left_px, top_px);
|
||||
gGL.vertex2f(right_px, bottom_px);
|
||||
gGL.end();
|
||||
glLineWidth(1.f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gGL.matrixMode(LLRender::MM_MODELVIEW);
|
||||
gGL.popMatrix();
|
||||
gGL.matrixMode(LLRender::MM_PROJECTION);
|
||||
gGL.popMatrix();
|
||||
gGLLastMatrix = NULL;
|
||||
gGLLastMatrix = nullptr;
|
||||
|
||||
ui_shader->unbind();
|
||||
|
||||
mSnapshotGuideState.active = false;
|
||||
}
|
||||
// </FS:Beq>
|
||||
|
||||
// <FS:Beq> FIRE-32023 Focus Point Rendering
|
||||
void LLPipeline::renderFocusPoint()
|
||||
{
|
||||
|
||||
static LLCachedControl<bool> render_focus_point_crosshair(gSavedSettings, "FSFocusPointRender", false);
|
||||
if ( sDoFEnabled && render_focus_point_crosshair && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
|
||||
if (sDoFEnabled && render_focus_point_crosshair && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
|
||||
{
|
||||
gDebugProgram.bind();
|
||||
LLVector3 focus_point = sLastFocusPoint;
|
||||
F32 size = 0.02f;
|
||||
LLGLDepthTest gls_depth(GL_FALSE);
|
||||
LLGLDepthTest gls_depth(GL_FALSE);
|
||||
gGL.pushMatrix();
|
||||
gGL.translatef(focus_point.mV[VX], focus_point.mV[VY], focus_point.mV[VZ]);
|
||||
|
||||
|
|
@ -4913,23 +4912,24 @@ void LLPipeline::renderFocusPoint()
|
|||
}
|
||||
gGL.vertex3f(-size, 0.0f, 0.0f);
|
||||
gGL.vertex3f(size, 0.0f, 0.0f);
|
||||
|
||||
|
||||
// Y-axis (Green)
|
||||
gGL.vertex3f(0.0f, -size, 0.0f);
|
||||
gGL.vertex3f(0.0f, size, 0.0f);
|
||||
|
||||
|
||||
// Z-axis (Blue)
|
||||
gGL.vertex3f(0.0f, 0.0f, -size);
|
||||
gGL.vertex3f(0.0f, 0.0f, size);
|
||||
|
||||
gGL.end();
|
||||
|
||||
|
||||
gGL.popMatrix();
|
||||
gGL.flush();
|
||||
gDebugProgram.unbind();
|
||||
}
|
||||
}
|
||||
}
|
||||
// </FS:Beq>
|
||||
|
||||
void LLPipeline::renderPhysicsDisplay()
|
||||
{
|
||||
if (!hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PHYSICS_SHAPES))
|
||||
|
|
@ -4940,9 +4940,9 @@ void LLPipeline::renderPhysicsDisplay()
|
|||
gGL.flush();
|
||||
gDebugProgram.bind();
|
||||
|
||||
LLGLEnable(GL_POLYGON_OFFSET_LINE);
|
||||
LLGLEnable ploygon_offset_line(GL_POLYGON_OFFSET_LINE);
|
||||
glPolygonOffset(3.f, 3.f);
|
||||
glLineWidth(3.f);
|
||||
gGL.setLineWidth(3.f);
|
||||
LLGLEnable blend(GL_BLEND);
|
||||
gGL.setSceneBlendType(LLRender::BT_ALPHA);
|
||||
|
||||
|
|
@ -4984,7 +4984,7 @@ void LLPipeline::renderPhysicsDisplay()
|
|||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
}
|
||||
}
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f);
|
||||
gDebugProgram.unbind();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,8 @@
|
|||
<combo_box.item label="Tiefe (24 Bit)" name="Depth24"/>
|
||||
</combo_box>
|
||||
<check_box label="Aufnahmerahmen anzeigen" name="show_frame" tool_tip="Zeigt einen Rahmen um den Bereich der Aufnahme an. Teile der Szene, die außerhalb des Aufnahmebereichs liegen, werden entsättigt und leicht verschwommen dargestellt."/>
|
||||
<check_box label="Aufnahme-Guide anzeigen" name="show_guides" tool_tip="Zeigt Aufnahme-Guide (Drittel-Regel) innerhalb des Aufnahmebereichs an."/>
|
||||
<check_box label="Rahmen-Guide anzeigen" name="show_guides" tool_tip="Zeigt Aufnahme-Guide (Drittel-Regel) innerhalb des Aufnahmebereichs an."/>
|
||||
<button tool_tip="Einstellungen für Aufnahmerahmen öffnen" name="guide_settings_btn" width="20" left_pad="9"/>
|
||||
<check_box label="Benutzeroberfläche" name="ui_check"/>
|
||||
<check_box label="L$-Kontostand" name="currency_check"/>
|
||||
<check_box label="HUDs" name="hud_check"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<floater name="snapshot_guide_settings" title="Einstellungen Aufnahmerahmen">
|
||||
<text name="color_and_appearance_label">
|
||||
Rahmen Farbe und Aussehen
|
||||
</text>
|
||||
<spinner label="Dicke (px)" name="guide_thickness"/>
|
||||
<slider label="Deckkraft" name="guide_opacity"/>
|
||||
<text name="style_label">
|
||||
Rahmen Stil
|
||||
</text>
|
||||
<combo_box name="guide_style_combo" tool_tip="Aufnahmerahmen auswählen">
|
||||
<combo_box.item name="rule_of_thirds" label="Drittel-Regel"/>
|
||||
<combo_box.item name="golden_ratio_top_left" label="Goldener Schnitt (Oben-Links)"/>
|
||||
<combo_box.item name="golden_ratio_top_right" label="Goldener Schnitt (Oben-Rechts)"/>
|
||||
<combo_box.item name="golden_ratio_bottom_left" label="Goldener Schnitt (Unten-Links)"/>
|
||||
<combo_box.item name="golden_ratio_bottom_right" label="Goldener Schnitt (Unten-Rechts)"/>
|
||||
<combo_box.item name="diagonal" label="Diagonal"/>
|
||||
</combo_box>
|
||||
</floater>
|
||||
|
|
@ -11,6 +11,11 @@
|
|||
<text name="working_lbl">
|
||||
Aktualisiere...
|
||||
</text>
|
||||
<panel name="options_panel">
|
||||
<check_box label="Aufnahmerahmen anzeigen" name="show_frame" tool_tip="Zeigt einen Rahmen um den Bereich der Aufnahme an. Teile der Szene, die außerhalb des Aufnahmebereichs liegen, werden entsättigt und leicht verschwommen dargestellt."/>
|
||||
<check_box label="Rahmen-Guide anzeigen" name="show_guides" tool_tip="Zeigt Aufnahme-Guide (Drittel-Regel) innerhalb des Aufnahmebereichs an."/>
|
||||
<button tool_tip="Einstellungen für Aufnahmerahmen öffnen" name="guide_settings_btn"/>
|
||||
</panel>
|
||||
<check_box label="Rahmen anzeigen" name="show_frame" tool_tip="Zeigt einen Rahmen um den Bereich der Aufnahme an. Teile der Szene, die außerhalb des Aufnahmebereichs liegen, werden entsättigt und leicht verschwommen dargestellt."/>
|
||||
<check_box label="Guide anzeigen" name="show_guides" tool_tip="Zeigt Aufnahme-Guide (Drittel-Regel) innerhalb des Aufnahmebereichs an."/>
|
||||
<button label="Aktualisieren" name="new_snapshot_btn" tool_tip="Zum Aktualisieren klicken"/>
|
||||
|
|
|
|||
|
|
@ -11,8 +11,11 @@
|
|||
<text name="working_lbl">
|
||||
Aktualisiere...
|
||||
</text>
|
||||
<check_box label="Rahmen anzeigen" name="show_frame" tool_tip="Zeigt einen Rahmen um den Bereich der Aufnahme an. Teile der Szene, die außerhalb des Aufnahmebereichs liegen, werden entsättigt und leicht verschwommen dargestellt."/>
|
||||
<check_box label="Guide anzeigen" name="show_guides" tool_tip="Zeigt Aufnahme-Guide (Drittel-Regel) innerhalb des Aufnahmebereichs an."/>
|
||||
<panel name="snapshot_frame_panel">
|
||||
<check_box label="Aufnahmerahmen anzeigen" name="show_frame" tool_tip="Zeigt einen Rahmen um den Bereich der Aufnahme an. Teile der Szene, die außerhalb des Aufnahmebereichs liegen, werden entsättigt und leicht verschwommen dargestellt."/>
|
||||
<check_box label="Rahmen-Guide anzeigen" name="show_guides" tool_tip="Zeigt Aufnahme-Guide (Drittel-Regel) innerhalb des Aufnahmebereichs an."/>
|
||||
<button tool_tip="Einstellungen für Aufnahmerahmen öffnen" name="guide_settings_btn"/>
|
||||
</panel>
|
||||
<button label="Aktualisieren" name="new_snapshot_btn" tool_tip="Zum Aktualisieren klicken"/>
|
||||
<button label="Vorschau" name="big_preview_btn" tool_tip="Klicken, um Vorschau ein-/auszuschalten"/>
|
||||
<text name="store_label">
|
||||
|
|
@ -22,16 +25,20 @@
|
|||
<text name="description_label">
|
||||
Beschreibung:
|
||||
</text>
|
||||
<check_box initial_value="true" label="Standort der Beschreibung hinzufügen" name="add_location_cb"/>
|
||||
<check_box label="Zur öffentl. Galerie hinzufügen" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="Kommerzieller Inhalt" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeed-Inhaltseinstufung">
|
||||
<combo_box.item label="Generell" name="GeneralRating"/>
|
||||
<combo_box.item label="Moderat" name="ModerateRating"/>
|
||||
<combo_box.item label="Adult" name="AdultRating"/>
|
||||
<combo_box.item label="Adult+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
<check_box label="Nach posten in Browser öffnen" tool_tip="Öffnet den Primfeed-Post automatisch im Browser." name="primfeed_open_url_on_post"/>
|
||||
<button label="Teilen" name="post_photo_btn"/>
|
||||
<button label="Abbrechen" name="cancel_photo_btn"/>
|
||||
<panel name="options_panel">
|
||||
<check_box initial_value="true" label="Standort der Beschreibung hinzufügen" name="add_location_cb"/>
|
||||
<check_box label="Zur öffentl. Galerie hinzufügen" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="Kommerzieller Inhalt" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeed-Inhaltseinstufung">
|
||||
<combo_box.item label="Generell" name="GeneralRating"/>
|
||||
<combo_box.item label="Moderat" name="ModerateRating"/>
|
||||
<combo_box.item label="Adult" name="AdultRating"/>
|
||||
<combo_box.item label="Adult+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
</panel>
|
||||
<panel name="share_options_panel">
|
||||
<check_box label="Nach posten in Browser öffnen" tool_tip="Öffnet den Primfeed-Post automatisch im Browser." name="primfeed_open_url_on_post"/>
|
||||
<button label="Teilen" name="post_photo_btn"/>
|
||||
<button label="Abbrechen" name="cancel_photo_btn"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
@ -5,24 +5,16 @@
|
|||
can_dock="false"
|
||||
can_resize="false"
|
||||
width="250"
|
||||
height="140"
|
||||
height="120"
|
||||
min_height="140"
|
||||
min_width="280"
|
||||
layout="topleft"
|
||||
translate="false">
|
||||
<panel
|
||||
follows="all"
|
||||
border="false"
|
||||
top="20"
|
||||
left="10"
|
||||
right="-10"
|
||||
bottom="-10"
|
||||
layout="topleft">
|
||||
layout="topleft">
|
||||
<text
|
||||
top="0"
|
||||
name="color_and_appearance_label"
|
||||
top="5"
|
||||
left="10"
|
||||
layout="topleft"
|
||||
follows="top|left"
|
||||
left="0"
|
||||
height="16">
|
||||
Guide Color and Appearance
|
||||
</text>
|
||||
|
|
@ -30,7 +22,7 @@
|
|||
enabled_control="FSSnapshotShowGuides"
|
||||
control_name="FSSnapshotFrameGuideColor"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
left="10"
|
||||
top_pad="0"
|
||||
width="40"
|
||||
height="65"
|
||||
|
|
@ -68,9 +60,10 @@
|
|||
decimal_digits="2"
|
||||
name="guide_opacity" />
|
||||
<text
|
||||
name="style_label"
|
||||
layout="topleft"
|
||||
follows="top|left"
|
||||
left="0"
|
||||
left="10"
|
||||
height="16">
|
||||
Guide Style
|
||||
</text>
|
||||
|
|
@ -78,7 +71,7 @@
|
|||
enabled_control="FSSnapshotShowGuides"
|
||||
control_name="FSSnapshotGuideStyle"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
left="10"
|
||||
top_pad="4"
|
||||
width="180"
|
||||
height="23"
|
||||
|
|
@ -110,5 +103,4 @@
|
|||
value="diagonal" />
|
||||
</combo_box>
|
||||
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@
|
|||
height="25"
|
||||
width="250"
|
||||
visible="true"
|
||||
name="options_panel"
|
||||
name="snapshot_frame_panel"
|
||||
top_pad="3"
|
||||
follows="left|top|right"
|
||||
layout="topleft"
|
||||
|
|
@ -379,7 +379,7 @@
|
|||
height="50"
|
||||
width="250"
|
||||
visible="true"
|
||||
name="options_panel"
|
||||
name="share_options_panel"
|
||||
top_pad="0"
|
||||
follows="left|top|right"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@
|
|||
<combo_box name="filters_combobox" tool_tip="Filtres sur l'image"><combo_box.item label="Aucun filtre" name="NoFilter"/></combo_box>
|
||||
<check_box label="Ratio conservé" name="keep_aspect_ratio"/>
|
||||
<text name="working_lbl">Actualisation...</text>
|
||||
<check_box label="Cadre de la photo" tool_tip="Affiche un cadre à l'écran qui entoure la zones de la photo. Les parties de la scène qui se trouvent en dehors de la photo sont dé-saturées et légèrement floues." name="show_frame"/>
|
||||
<check_box label="Guide de cadrage" tool_tip="Affiche le guide de cadrage (règle des tiers) à l'intérieur du cadre de la photo." name="show_guides"/>
|
||||
<panel name="options_panel">
|
||||
<check_box label="Cadre de la photo" tool_tip="Affiche un cadre à l'écran qui entoure la zones de la photo. Les parties de la scène qui se trouvent en dehors de la photo sont dé-saturées et légèrement floues." name="show_frame"/>
|
||||
<check_box label="Guide de cadrage" tool_tip="Affiche le guide de cadrage (règle des tiers) à l'intérieur du cadre de la photo." name="show_guides"/>
|
||||
</panel>
|
||||
<button label="Actualiser" name="new_snapshot_btn" tool_tip="Cliquez pour actualiser"/>
|
||||
<button label="Prévisualiser" name="big_preview_btn" tool_tip="Cliquez pour obtenir un aperçu"/>
|
||||
<text name="title_label">Titre :</text>
|
||||
|
|
|
|||
|
|
@ -11,8 +11,10 @@
|
|||
<text name="working_lbl">
|
||||
Rafraichissement...
|
||||
</text>
|
||||
<check_box label="Cadre de la photo" tool_tip="Affiche un cadre à l'écran qui entoure la zones de la photo. Les parties de la scène qui se trouvent en dehors de la photo sont dé-saturées et légèrement floues." name="show_frame"/>
|
||||
<check_box label="Guide de cadrage" tool_tip="Affiche le guide de cadrage (règle des tiers) à l'intérieur du cadre de la photo." name="show_guides"/>
|
||||
<panel name="snapshot_frame_panel">
|
||||
<check_box label="Cadre de la photo" tool_tip="Affiche un cadre à l'écran qui entoure la zones de la photo. Les parties de la scène qui se trouvent en dehors de la photo sont dé-saturées et légèrement floues." name="show_frame"/>
|
||||
<check_box label="Guide de cadrage" tool_tip="Affiche le guide de cadrage (règle des tiers) à l'intérieur du cadre de la photo." name="show_guides"/>
|
||||
</panel>
|
||||
<button label="Actualiser" name="new_snapshot_btn" tool_tip="Cliquez pour actualiser"/>
|
||||
<button label="Aperçu" name="big_preview_btn" tool_tip="Cliquez pour afficher l'aperçu"/>
|
||||
<text name="store_label">
|
||||
|
|
@ -22,16 +24,20 @@
|
|||
<text name="description_label">
|
||||
Description :
|
||||
</text>
|
||||
<check_box label="Inclure l'emplacement" name="add_location_cb"/>
|
||||
<check_box label="Ajouter à la galerie publique" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="Contenu commercial" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Classification du contenu de Primfeed">
|
||||
<combo_box.item label="Général" name="GeneralRating"/>
|
||||
<combo_box.item label="Modéré" name="ModerateRating"/>
|
||||
<combo_box.item label="Adulte" name="AdultRating"/>
|
||||
<combo_box.item label="Adulte+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
<check_box label="Ouvrir dans le navigateur après l'envoi" tool_tip="Ouvrir automatiquement le message Primfeed dans votre navigateur web après l'avoir publié." name="primfeed_open_url_on_post"/>
|
||||
<button label="Partager" name="post_photo_btn"/>
|
||||
<button label="Annuler" name="cancel_photo_btn"/>
|
||||
<panel name="options_panel">
|
||||
<check_box label="Inclure l'emplacement" name="add_location_cb"/>
|
||||
<check_box label="Ajouter à la galerie publique" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="Contenu commercial" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Classification du contenu de Primfeed">
|
||||
<combo_box.item label="Général" name="GeneralRating"/>
|
||||
<combo_box.item label="Modéré" name="ModerateRating"/>
|
||||
<combo_box.item label="Adulte" name="AdultRating"/>
|
||||
<combo_box.item label="Adulte+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
</panel>
|
||||
<panel name="share_options_panel">
|
||||
<check_box label="Ouvrir dans le navigateur après l'envoi" tool_tip="Ouvrir automatiquement le message Primfeed dans votre navigateur web après l'avoir publié." name="primfeed_open_url_on_post"/>
|
||||
<button label="Partager" name="post_photo_btn"/>
|
||||
<button label="Annuler" name="cancel_photo_btn"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
@ -11,8 +11,10 @@
|
|||
<text name="working_lbl">
|
||||
Caricamento...
|
||||
</text>
|
||||
<check_box label="Frame di cattura" tool_tip="Mostra una cornice sullo schermo che circonda le aree della foto. Le parti della scena che sono al di fuori della foto saranno desaturate e leggermente sfocate" name="show_frame" />
|
||||
<check_box label="Guida inquadrat." tool_tip="Mostra la guida all'inquadratura (regola dei terzi) all'interno della cornice della foto" name="show_guides" />
|
||||
<panel name="options_panel">
|
||||
<check_box label="Frame di cattura" tool_tip="Mostra una cornice sullo schermo che circonda le aree della foto. Le parti della scena che sono al di fuori della foto saranno desaturate e leggermente sfocate" name="show_frame" />
|
||||
<check_box label="Guida inquadrat." tool_tip="Mostra la guida all'inquadratura (regola dei terzi) all'interno della cornice della foto" name="show_guides" />
|
||||
</panel>
|
||||
<button label="Aggiorna" name="new_snapshot_btn" tool_tip="Fai clic per aggiornare"/>
|
||||
<button label="Anteprima" name="big_preview_btn" tool_tip="Fai clic per alternare l'anteprima"/>
|
||||
<text name="title_label">
|
||||
|
|
|
|||
|
|
@ -17,8 +17,10 @@
|
|||
<text name="working_lbl">
|
||||
更新しています…
|
||||
</text>
|
||||
<check_box label="フレームキャプチャを表示" tool_tip="スナップショットの領域を囲むフレームを画面上に表示します。スナップショットの外側にあるシーンの部分は彩度が低くなり、わずかにぼやけます。" name="show_frame"/>
|
||||
<check_box label="フレーミングガイド" tool_tip="スナップショットのフレーム内にフレーミングガイド(三分割法)を表示します。" name="show_guides"/>
|
||||
<panel name="options_panel">
|
||||
<check_box label="フレームキャプチャを表示" tool_tip="スナップショットの領域を囲むフレームを画面上に表示します。スナップショットの外側にあるシーンの部分は彩度が低くなり、わずかにぼやけます。" name="show_frame"/>
|
||||
<check_box label="フレーミングガイド" tool_tip="スナップショットのフレーム内にフレーミングガイド(三分割法)を表示します。" name="show_guides"/>
|
||||
</panel>
|
||||
<button label="更新" name="new_snapshot_btn" tool_tip="クリックして更新"/>
|
||||
<button label="プレビュー" name="big_preview_btn" tool_tip="クリックしてプレビューを切り替える"/>
|
||||
<text name="title_label">
|
||||
|
|
|
|||
|
|
@ -20,8 +20,10 @@
|
|||
<text name="working_lbl">
|
||||
リフレッシュしています…
|
||||
</text>
|
||||
<check_box label="フレームを表示" tool_tip="スナップショットの領域を囲むフレームを画面に表示します。スナップショットの外側にあるシーンの一部は彩度が低くなり、わずかにぼやけます。" name="show_frame"/>
|
||||
<check_box label="フレームのガイドを表示" tool_tip="スナップショットフレーム内にフレームのガイド(三分割法)を表示します。" name="show_guides"/>
|
||||
<panel name="snapshot_frame_panel">
|
||||
<check_box label="フレームを表示" tool_tip="スナップショットの領域を囲むフレームを画面に表示します。スナップショットの外側にあるシーンの一部は彩度が低くなり、わずかにぼやけます。" name="show_frame"/>
|
||||
<check_box label="フレームのガイドを表示" tool_tip="スナップショットフレーム内にフレームのガイド(三分割法)を表示します。" name="show_guides"/>
|
||||
</panel>
|
||||
<button label="リフレッシュ" name="new_snapshot_btn" tool_tip="クリックでリフレッシュします。"/>
|
||||
<button label="プレビュー" name="big_preview_btn" tool_tip="クリックでプレビューを切り替えます。"/>
|
||||
<text name="store_label">
|
||||
|
|
@ -31,11 +33,15 @@
|
|||
<text name="description_label">
|
||||
説明:
|
||||
</text>
|
||||
<check_box label="場所を含める" name="add_location_cb"/>
|
||||
<check_box label="パブリックギャラリーに追加" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="商用コンテンツ" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeedのコンテンツレーティングを指定します。"/>
|
||||
<check_box label="投稿後にブラウザを開きますか?" tool_tip="投稿後、Primfeedの投稿がWebブラウザで自動的に開きます。" name="primfeed_open_url_on_post"/>
|
||||
<button label="シェア" name="post_photo_btn"/>
|
||||
<button label="キャンセル" name="cancel_photo_btn"/>
|
||||
<panel name="options_panel">
|
||||
<check_box label="場所を含める" name="add_location_cb"/>
|
||||
<check_box label="パブリックギャラリーに追加" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="商用コンテンツ" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeedのコンテンツレーティングを指定します。"/>
|
||||
</panel>
|
||||
<panel name="share_options_panel">
|
||||
<check_box label="投稿後にブラウザを開きますか?" tool_tip="投稿後、Primfeedの投稿がWebブラウザで自動的に開きます。" name="primfeed_open_url_on_post"/>
|
||||
<button label="シェア" name="post_photo_btn"/>
|
||||
<button label="キャンセル" name="cancel_photo_btn"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -54,7 +54,8 @@
|
|||
<check_box label="Stan L$" name="currency_check"/>
|
||||
<check_box label="Obiekty HUD" name="hud_check" />
|
||||
<check_box label="Ramka migawki" tool_tip="Pokaż na ekranie ramkę otaczającą obszary migawki. Części sceny, które są poza migawką, zostaną odbarwione i lekko rozmyte." name="show_frame" />
|
||||
<check_box label="Prowadnice" tool_tip="Pokaż prowadnicę kadrowania (zasadę trójpodziału) wewnątrz ramki migawki." name="show_guides" />
|
||||
<check_box label="Pomoce" tool_tip="Pokaż pomoce kadrowania (np. zasadę trójpodziału) wewnątrz ramki migawki." name="show_guides" />
|
||||
<button tool_tip="Pokaż opcje pomocy kadrowania" name="guide_settings_btn" />
|
||||
<check_box label="Wstrzymaj (pełny ekran)" name="freeze_frame_check" />
|
||||
<check_box label="Autoodświeżanie" name="auto_snapshot_check" />
|
||||
<check_box label="Bez obróbki końcowej" name="no_post_check" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<floater name="snapshot_guide_settings" title="Ustawienia pomocy kadrowania">
|
||||
<text name="color_and_appearance_label">
|
||||
Kolor i wygląd
|
||||
</text>
|
||||
<spinner label="Grubość (px)" name="guide_thickness" />
|
||||
<slider label="Przezroczystość" name="guide_opacity" />
|
||||
<text name="style_label">
|
||||
Styl linii
|
||||
</text>
|
||||
<combo_box name="guide_style_combo" tool_tip="Wybierz, którą pomoc kadrowania wyświetlić">
|
||||
<combo_box.item name="rule_of_thirds" label="Zasada trójpodziału" />
|
||||
<combo_box.item name="golden_ratio_top_left" label="Złoty podział (góra lewa)" />
|
||||
<combo_box.item name="golden_ratio_top_right" label="Złoty podział (góra prawa)" />
|
||||
<combo_box.item name="golden_ratio_bottom_left" label="Złoty podział (dół lewy)" />
|
||||
<combo_box.item name="golden_ratio_bottom_right" label="Złoty podział (dół prawy)" />
|
||||
<combo_box.item name="diagonal" label="Przekątna" />
|
||||
</combo_box>
|
||||
</floater>
|
||||
|
|
@ -11,8 +11,11 @@
|
|||
<text name="working_lbl">
|
||||
Odświeżanie...
|
||||
</text>
|
||||
<check_box label="Ramka migawki" tool_tip="Pokaż na ekranie ramkę otaczającą obszary migawki. Części sceny, które są poza migawką, zostaną odbarwione i lekko rozmyte." name="show_frame" />
|
||||
<check_box label="Prowadnice" tool_tip="Pokaż prowadnicę kadrowania (zasadę trójpodziału) wewnątrz ramki migawki." name="show_guides" />
|
||||
<panel name="options_panel">
|
||||
<check_box label="Ramka migawki" tool_tip="Pokaż na ekranie ramkę otaczającą obszary migawki. Części sceny, które są poza migawką, zostaną odbarwione i lekko rozmyte." name="show_frame" />
|
||||
<check_box label="Pomoce" tool_tip="Pokaż pomoce kadrowania (np. zasadę trójpodziału) wewnątrz ramki migawki." name="show_guides" />
|
||||
<button tool_tip="Pokaż opcje pomocy kadrowania" name="guide_settings_btn" />
|
||||
</panel>
|
||||
<button label="Odśwież" name="new_snapshot_btn" tool_tip="Kliknij, aby odświeżyć" />
|
||||
<button label="Podgląd" name="big_preview_btn" tool_tip="Kliknij, aby przełączyć podgląd" />
|
||||
<text name="title_label">
|
||||
|
|
|
|||
|
|
@ -11,8 +11,11 @@
|
|||
<text name="working_lbl">
|
||||
Odświeżanie...
|
||||
</text>
|
||||
<check_box label="Ramka migawki" tool_tip="Pokaż na ekranie ramkę otaczającą obszary migawki. Części sceny, które są poza migawką, zostaną odbarwione i lekko rozmyte." name="show_frame" />
|
||||
<check_box label="Prowadnice" tool_tip="Pokaż prowadnicę kadrowania (zasadę trójpodziału) wewnątrz ramki migawki." name="show_guides" />
|
||||
<panel name="snapshot_frame_panel">
|
||||
<check_box label="Ramka migawki" tool_tip="Pokaż na ekranie ramkę otaczającą obszary migawki. Części sceny, które są poza migawką, zostaną odbarwione i lekko rozmyte." name="show_frame" />
|
||||
<check_box label="Pomoce" tool_tip="Pokaż pomoce kadrowania (np. zasadę trójpodziału) wewnątrz ramki migawki." name="show_guides" />
|
||||
<button tool_tip="Pokaż opcje pomocy kadrowania" name="guide_settings_btn" />
|
||||
</panel>
|
||||
<button label="Odśwież" name="new_snapshot_btn" tool_tip="Kliknij, aby odświeżyć" />
|
||||
<button label="Podgląd" name="big_preview_btn" tool_tip="Kliknij, aby przełączyć podgląd" />
|
||||
<text name="store_label">
|
||||
|
|
@ -22,16 +25,20 @@
|
|||
<text name="description_label">
|
||||
Opis:
|
||||
</text>
|
||||
<check_box label="Dołącz lokalizację" name="add_location_cb" />
|
||||
<check_box label="Do publicznej galerii" name="primfeed_add_to_public_gallery" />
|
||||
<check_box label="Treści komercyjne" name="primfeed_commercial_content" />
|
||||
<combo_box name="rating_combobox" tool_tip="Klasyfikacja treści Primfeed">
|
||||
<combo_box.item label="Treść bezpieczna" name="GeneralRating" />
|
||||
<combo_box.item label="Treść umiarkowana" name="ModerateRating" />
|
||||
<combo_box.item label="Dla dorosłych" name="AdultRating" />
|
||||
<combo_box.item label="Dla dorosłych+" name="AdultPlusRating" />
|
||||
</combo_box>
|
||||
<check_box label="Otwórz w przeglądarce po wysłaniu" tool_tip="Automatycznie otwórz post w przeglądarce internetowej po wysłaniu." name="primfeed_open_url_on_post" />
|
||||
<button label="Wyślij" name="post_photo_btn" />
|
||||
<button label="Anuluj" name="cancel_photo_btn" />
|
||||
<panel name="options_panel">
|
||||
<check_box label="Dołącz lokalizację" name="add_location_cb" />
|
||||
<check_box label="Do publicznej galerii" name="primfeed_add_to_public_gallery" />
|
||||
<check_box label="Treści komercyjne" name="primfeed_commercial_content" />
|
||||
<combo_box name="rating_combobox" tool_tip="Klasyfikacja treści Primfeed">
|
||||
<combo_box.item label="Treść bezpieczna" name="GeneralRating" />
|
||||
<combo_box.item label="Treść umiarkowana" name="ModerateRating" />
|
||||
<combo_box.item label="Dla dorosłych" name="AdultRating" />
|
||||
<combo_box.item label="Dla dorosłych+" name="AdultPlusRating" />
|
||||
</combo_box>
|
||||
</panel>
|
||||
<panel name="share_options_panel">
|
||||
<check_box label="Otwórz w przeglądarce po wysłaniu" tool_tip="Automatycznie otwórz post w przeglądarce internetowej po wysłaniu." name="primfeed_open_url_on_post" />
|
||||
<button label="Wyślij" name="post_photo_btn" />
|
||||
<button label="Anuluj" name="cancel_photo_btn" />
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -14,8 +14,10 @@
|
|||
<text name="working_lbl">
|
||||
Обновление...
|
||||
</text>
|
||||
<check_box label="Показать кадр" tool_tip="Показать на экране рамку, окружающую области снимка. Части сцены, находящиеся за пределами снимка, будут обесцвечены и слегка размыты." name="show_frame" />
|
||||
<check_box label="Кадрирование" tool_tip="Показать руководство по кадрированию (правило третей) внутри рамки снимка" name="show_guides" />
|
||||
<panel name="options_panel">
|
||||
<check_box label="Показать кадр" tool_tip="Показать на экране рамку, окружающую области снимка. Части сцены, находящиеся за пределами снимка, будут обесцвечены и слегка размыты." name="show_frame" />
|
||||
<check_box label="Кадрирование" tool_tip="Показать руководство по кадрированию (правило третей) внутри рамки снимка" name="show_guides" />
|
||||
</panel>
|
||||
<button label="Обновить" name="new_snapshot_btn" tool_tip="Щелкните для обновления"/>
|
||||
<button label="Просмотр" name="big_preview_btn" tool_tip="Щелкните для смены вида"/>
|
||||
<text name="title_label">
|
||||
|
|
|
|||
|
|
@ -9,23 +9,29 @@
|
|||
</combo_box>
|
||||
<check_box label="Сохранять соотношение сторон" name="keep_aspect_ratio"/>
|
||||
<text name="working_lbl">Обновляется...</text>
|
||||
<check_box label="Показать кадр захвата" tool_tip="Показать на экране рамку, которая окружает области снимка. Части сцены, находящиеся за пределами снимка, будут лишены насыщенности и слегка размыты." name="show_frame"/>
|
||||
<check_box label="Направляющие кадрирования" tool_tip="Показать направляющую кадрирования (правило третей) внутри рамки снимка." name="show_guides" />
|
||||
<panel name="snapshot_frame_panel">
|
||||
<check_box label="Показать кадр захвата" tool_tip="Показать на экране рамку, которая окружает области снимка. Части сцены, находящиеся за пределами снимка, будут лишены насыщенности и слегка размыты." name="show_frame"/>
|
||||
<check_box label="Направляющие кадрирования" tool_tip="Показать направляющую кадрирования (правило третей) внутри рамки снимка." name="show_guides" />
|
||||
</panel>
|
||||
<button label="Обновить" name="new_snapshot_btn" tool_tip="Нажмите, чтобы обновить"/>
|
||||
<button label="Просмотр" name="big_preview_btn" tool_tip="Нажмите, чтобы переключить предварительный просмотр"/>
|
||||
<text name="store_label">Опубликовать как:</text>
|
||||
<combo_box name="stores_combobox" tool_tip="Если у вас есть один или несколько простых магазинов блогеров, назначенных на Primfeed, они появятся здесь."/>
|
||||
<text name="description_label">Описание:</text>
|
||||
<check_box label="Включить местоположение" name="add_location_cb"/>
|
||||
<check_box label="Добавить в публичную галерею" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="Коммерческий контент" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeed content rating">
|
||||
<combo_box.item label="Общий" name="GeneralRating"/>
|
||||
<combo_box.item label="Умереный" name="ModerateRating"/>
|
||||
<combo_box.item label="Взрослый" name="AdultRating"/>
|
||||
<combo_box.item label="Взрослый+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
<check_box label="Открыть в браузере после публикации" tool_tip="Автоматически открывать публикацию Primfeed в вашем веб-браузере после публикации." name="primfeed_open_url_on_post"/>
|
||||
<button label="Поделиться" name="post_photo_btn"/>
|
||||
<button label="Отмена" name="cancel_photo_btn"/>
|
||||
<panel name="options_panel">
|
||||
<check_box label="Включить местоположение" name="add_location_cb"/>
|
||||
<check_box label="Добавить в публичную галерею" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="Коммерческий контент" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeed content rating">
|
||||
<combo_box.item label="Общий" name="GeneralRating"/>
|
||||
<combo_box.item label="Умереный" name="ModerateRating"/>
|
||||
<combo_box.item label="Взрослый" name="AdultRating"/>
|
||||
<combo_box.item label="Взрослый+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
</panel>
|
||||
<panel name="share_options_panel">
|
||||
<check_box label="Открыть в браузере после публикации" tool_tip="Автоматически открывать публикацию Primfeed в вашем веб-браузере после публикации." name="primfeed_open_url_on_post"/>
|
||||
<button label="Поделиться" name="post_photo_btn"/>
|
||||
<button label="Отмена" name="cancel_photo_btn"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -11,8 +11,10 @@
|
|||
<text name="working_lbl">
|
||||
更新...
|
||||
</text>
|
||||
<check_box label="顯示捕捉框架" tool_tip="在螢幕上顯示一個框架,圍繞快照區域。場景中超出快照範圍的部分將被去飽和並稍微模糊。" name="show_frame"/>
|
||||
<check_box label="顯示構圖指南" tool_tip="在快照框架內顯示構圖指南(九宮格規則)" name="show_guides"/>
|
||||
<panel name="options_panel">
|
||||
<check_box label="顯示捕捉框架" tool_tip="在螢幕上顯示一個框架,圍繞快照區域。場景中超出快照範圍的部分將被去飽和並稍微模糊。" name="show_frame"/>
|
||||
<check_box label="顯示構圖指南" tool_tip="在快照框架內顯示構圖指南(九宮格規則)" name="show_guides"/>
|
||||
</panel>
|
||||
<button label="更新" name="new_snapshot_btn" tool_tip="點擊即可更新" />
|
||||
<button label="預覽" name="big_preview_btn" tool_tip="點擊即可切換預覽" />
|
||||
<text name="title_label">
|
||||
|
|
|
|||
|
|
@ -11,8 +11,10 @@
|
|||
<text name="working_lbl">
|
||||
正在更新...
|
||||
</text>
|
||||
<check_box label="顯示邊框" name="show_frame" tool_tip="顯示拍攝區域的邊框。場景中超出拍攝範圍的部分會被消色並輕微模糊處理。"/>
|
||||
<check_box label="顯示指導線" name="show_guides" tool_tip="在拍攝範圍內顯示拍攝指導線(例如三分法)。"/>
|
||||
<panel name="snapshot_frame_panel">
|
||||
<check_box label="顯示邊框" name="show_frame" tool_tip="顯示拍攝區域的邊框。場景中超出拍攝範圍的部分會被消色並輕微模糊處理。"/>
|
||||
<check_box label="顯示指導線" name="show_guides" tool_tip="在拍攝範圍內顯示拍攝指導線(例如三分法)。"/>
|
||||
</panel>
|
||||
<button label="更新" name="new_snapshot_btn" tool_tip="點擊更新"/>
|
||||
<button label="預覽" name="big_preview_btn" tool_tip="點擊切換預覽狀態"/>
|
||||
<text name="store_label">
|
||||
|
|
@ -22,16 +24,20 @@
|
|||
<text name="description_label">
|
||||
描述:
|
||||
</text>
|
||||
<check_box label="添加位置描述" name="add_location_cb"/>
|
||||
<check_box label="添加到公開圖庫" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="商業內容" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeed 內容評級">
|
||||
<combo_box.item label="普級" name="GeneralRating"/>
|
||||
<combo_box.item label="適度成人" name="ModerateRating"/>
|
||||
<combo_box.item label="完全成人" name="AdultRating"/>
|
||||
<combo_box.item label="完全成人+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
<check_box label="發布後在瀏覽器中打開" tool_tip="自動在瀏覽器中打開 Primfeed 發布的內容。" name="primfeed_open_url_on_post"/>
|
||||
<button label="分享" name="post_photo_btn"/>
|
||||
<button label="取消" name="cancel_photo_btn"/>
|
||||
<panel name="options_panel">
|
||||
<check_box label="添加位置描述" name="add_location_cb"/>
|
||||
<check_box label="添加到公開圖庫" name="primfeed_add_to_public_gallery"/>
|
||||
<check_box label="商業內容" name="primfeed_commercial_content"/>
|
||||
<combo_box name="rating_combobox" tool_tip="Primfeed 內容評級">
|
||||
<combo_box.item label="普級" name="GeneralRating"/>
|
||||
<combo_box.item label="適度成人" name="ModerateRating"/>
|
||||
<combo_box.item label="完全成人" name="AdultRating"/>
|
||||
<combo_box.item label="完全成人+" name="AdultPlusRating"/>
|
||||
</combo_box>
|
||||
</panel>
|
||||
<panel name="share_options_panel">
|
||||
<check_box label="發布後在瀏覽器中打開" tool_tip="自動在瀏覽器中打開 Primfeed 發布的內容。" name="primfeed_open_url_on_post"/>
|
||||
<button label="分享" name="post_photo_btn"/>
|
||||
<button label="取消" name="cancel_photo_btn"/>
|
||||
</panel>
|
||||
</panel>
|
||||
Loading…
Reference in New Issue