Bug 866184 - Update SyncViewportInfo and SyncFrameMetrics to take a gfx::Point instead of floats. r=BenWa

This commit is contained in:
Kartikaya Gupta
2013-05-01 14:12:08 -04:00
parent 51e0ed0c98
commit af0345221a
6 changed files with 47 additions and 48 deletions

View File

@@ -885,7 +885,7 @@ AndroidGeckoLayerClient::SetPageRect(const gfx::Rect& aCssPageRect)
void
AndroidGeckoLayerClient::SyncViewportInfo(const nsIntRect& aDisplayPort, float aDisplayResolution, bool aLayersUpdated,
nsIntPoint& aScrollOffset, float& aScaleX, float& aScaleY,
gfx::Margin& aFixedLayerMargins, float& aOffsetX, float& aOffsetY)
gfx::Margin& aFixedLayerMargins, gfx::Point& aOffset)
{
NS_ASSERTION(!isNull(), "SyncViewportInfo called on null layer client!");
JNIEnv *env = GetJNIForThread(); // this is called on the compositor thread
@@ -910,14 +910,14 @@ AndroidGeckoLayerClient::SyncViewportInfo(const nsIntRect& aDisplayPort, float a
aScaleX = aScaleY = viewTransform.GetScale(env);
viewTransform.GetFixedLayerMargins(env, aFixedLayerMargins);
aOffsetX = viewTransform.GetOffsetX(env);
aOffsetY = viewTransform.GetOffsetY(env);
aOffset.x = viewTransform.GetOffsetX(env);
aOffset.y = viewTransform.GetOffsetY(env);
}
void
AndroidGeckoLayerClient::SyncFrameMetrics(const gfx::Point& aOffset, float aZoom, const gfx::Rect& aCssPageRect,
AndroidGeckoLayerClient::SyncFrameMetrics(const gfx::Point& aScrollOffset, float aZoom, const gfx::Rect& aCssPageRect,
bool aLayersUpdated, const gfx::Rect& aDisplayPort, float aDisplayResolution,
bool aIsFirstPaint, gfx::Margin& aFixedLayerMargins, float& aOffsetX, float& aOffsetY)
bool aIsFirstPaint, gfx::Margin& aFixedLayerMargins, gfx::Point& aOffset)
{
NS_ASSERTION(!isNull(), "SyncFrameMetrics called on null layer client!");
JNIEnv *env = GetJNIForThread(); // this is called on the compositor thread
@@ -927,13 +927,13 @@ AndroidGeckoLayerClient::SyncFrameMetrics(const gfx::Point& aOffset, float aZoom
AutoLocalJNIFrame jniFrame(env);
// convert the displayport rect from scroll-relative CSS pixels to document-relative device pixels
int dpX = NS_lround((aDisplayPort.x * aDisplayResolution) + aOffset.x);
int dpY = NS_lround((aDisplayPort.y * aDisplayResolution) + aOffset.y);
int dpX = NS_lround((aDisplayPort.x * aDisplayResolution) + aScrollOffset.x);
int dpY = NS_lround((aDisplayPort.y * aDisplayResolution) + aScrollOffset.y);
int dpW = NS_lround(aDisplayPort.width * aDisplayResolution);
int dpH = NS_lround(aDisplayPort.height * aDisplayResolution);
jobject viewTransformJObj = env->CallObjectMethod(wrapped_obj, jSyncFrameMetricsMethod,
aOffset.x, aOffset.y, aZoom,
aScrollOffset.x, aScrollOffset.y, aZoom,
aCssPageRect.x, aCssPageRect.y, aCssPageRect.XMost(), aCssPageRect.YMost(),
aLayersUpdated, dpX, dpY, dpW, dpH, aDisplayResolution,
aIsFirstPaint);
@@ -946,8 +946,8 @@ AndroidGeckoLayerClient::SyncFrameMetrics(const gfx::Point& aOffset, float aZoom
AndroidViewTransform viewTransform;
viewTransform.Init(viewTransformJObj);
viewTransform.GetFixedLayerMargins(env, aFixedLayerMargins);
aOffsetX = viewTransform.GetOffsetX(env);
aOffsetY = viewTransform.GetOffsetY(env);
aOffset.x = viewTransform.GetOffsetX(env);
aOffset.y = viewTransform.GetOffsetY(env);
}
bool