am ff597898: am b3ec64e1: Merge "Wire up surface width/height to lockHardwareCanvas" into lmp-mr1-dev
* commit 'ff5978988abceeb0f2c8324a9ab66b7c958edd34': Wire up surface width/height to lockHardwareCanvas
This commit is contained in:
@@ -53,6 +53,9 @@ public class Surface implements Parcelable {
|
|||||||
|
|
||||||
private static native void nativeAllocateBuffers(long nativeObject);
|
private static native void nativeAllocateBuffers(long nativeObject);
|
||||||
|
|
||||||
|
private static native int nativeGetWidth(long nativeObject);
|
||||||
|
private static native int nativeGetHeight(long nativeObject);
|
||||||
|
|
||||||
public static final Parcelable.Creator<Surface> CREATOR =
|
public static final Parcelable.Creator<Surface> CREATOR =
|
||||||
new Parcelable.Creator<Surface>() {
|
new Parcelable.Creator<Surface>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -327,7 +330,9 @@ public class Surface implements Parcelable {
|
|||||||
if (mHwuiContext == null) {
|
if (mHwuiContext == null) {
|
||||||
mHwuiContext = new HwuiContext();
|
mHwuiContext = new HwuiContext();
|
||||||
}
|
}
|
||||||
return mHwuiContext.lockCanvas();
|
return mHwuiContext.lockCanvas(
|
||||||
|
nativeGetWidth(mNativeObject),
|
||||||
|
nativeGetHeight(mNativeObject));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,11 +581,11 @@ public class Surface implements Parcelable {
|
|||||||
mHwuiRenderer = nHwuiCreate(mRenderNode.mNativeRenderNode, mNativeObject);
|
mHwuiRenderer = nHwuiCreate(mRenderNode.mNativeRenderNode, mNativeObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
Canvas lockCanvas() {
|
Canvas lockCanvas(int width, int height) {
|
||||||
if (mCanvas != null) {
|
if (mCanvas != null) {
|
||||||
throw new IllegalStateException("Surface was already locked!");
|
throw new IllegalStateException("Surface was already locked!");
|
||||||
}
|
}
|
||||||
mCanvas = mRenderNode.start(0, 0);
|
mCanvas = mRenderNode.start(width, height);
|
||||||
return mCanvas;
|
return mCanvas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -357,6 +357,22 @@ static void nativeWriteToParcel(JNIEnv* env, jclass clazz,
|
|||||||
parcel->writeStrongBinder( self != 0 ? self->getIGraphicBufferProducer()->asBinder() : NULL);
|
parcel->writeStrongBinder( self != 0 ? self->getIGraphicBufferProducer()->asBinder() : NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static jint nativeGetWidth(JNIEnv* env, jclass clazz, jlong nativeObject) {
|
||||||
|
Surface* surface = reinterpret_cast<Surface*>(nativeObject);
|
||||||
|
ANativeWindow* anw = static_cast<ANativeWindow*>(surface);
|
||||||
|
int value = 0;
|
||||||
|
anw->query(anw, NATIVE_WINDOW_WIDTH, &value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static jint nativeGetHeight(JNIEnv* env, jclass clazz, jlong nativeObject) {
|
||||||
|
Surface* surface = reinterpret_cast<Surface*>(nativeObject);
|
||||||
|
ANativeWindow* anw = static_cast<ANativeWindow*>(surface);
|
||||||
|
int value = 0;
|
||||||
|
anw->query(anw, NATIVE_WINDOW_HEIGHT, &value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
namespace uirenderer {
|
namespace uirenderer {
|
||||||
|
|
||||||
using namespace android::uirenderer::renderthread;
|
using namespace android::uirenderer::renderthread;
|
||||||
@@ -426,6 +442,8 @@ static JNINativeMethod gSurfaceMethods[] = {
|
|||||||
(void*)nativeReadFromParcel },
|
(void*)nativeReadFromParcel },
|
||||||
{"nativeWriteToParcel", "(JLandroid/os/Parcel;)V",
|
{"nativeWriteToParcel", "(JLandroid/os/Parcel;)V",
|
||||||
(void*)nativeWriteToParcel },
|
(void*)nativeWriteToParcel },
|
||||||
|
{"nativeGetWidth", "(J)I", (void*)nativeGetWidth },
|
||||||
|
{"nativeGetHeight", "(J)I", (void*)nativeGetHeight },
|
||||||
|
|
||||||
// HWUI context
|
// HWUI context
|
||||||
{"nHwuiCreate", "(JJ)J", (void*) hwui::create },
|
{"nHwuiCreate", "(JJ)J", (void*) hwui::create },
|
||||||
|
|||||||
Reference in New Issue
Block a user