am 8ae5a8e7
: Get to the point of being able to do native drawing.
Merge commit '8ae5a8e7c04c7b204b739dfcd5da9e2e0f83e1eb' into gingerbread-plus-aosp * commit '8ae5a8e7c04c7b204b739dfcd5da9e2e0f83e1eb': Get to the point of being able to do native drawing.
This commit is contained in:
@ -362,8 +362,12 @@ onSurfaceChanged_native(JNIEnv* env, jobject clazz, jint handle, jobject surface
|
|||||||
sp<ANativeWindow> oldNativeWindow = code->nativeWindow;
|
sp<ANativeWindow> oldNativeWindow = code->nativeWindow;
|
||||||
code->setSurface(surface);
|
code->setSurface(surface);
|
||||||
if (oldNativeWindow != code->nativeWindow) {
|
if (oldNativeWindow != code->nativeWindow) {
|
||||||
if (code->nativeWindow != NULL && code->callbacks.onNativeWindowChanged != NULL) {
|
if (oldNativeWindow != NULL && code->callbacks.onNativeWindowDestroyed != NULL) {
|
||||||
code->callbacks.onNativeWindowChanged(&code->activity,
|
code->callbacks.onNativeWindowDestroyed(&code->activity,
|
||||||
|
oldNativeWindow.get());
|
||||||
|
}
|
||||||
|
if (code->nativeWindow != NULL && code->callbacks.onNativeWindowCreated != NULL) {
|
||||||
|
code->callbacks.onNativeWindowCreated(&code->activity,
|
||||||
code->nativeWindow.get());
|
code->nativeWindow.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,3 +39,9 @@ int32_t ANativeWindow_getHeight(ANativeWindow* window) {
|
|||||||
int32_t ANativeWindow_getFormat(ANativeWindow* window) {
|
int32_t ANativeWindow_getFormat(ANativeWindow* window) {
|
||||||
return getWindowProp(window, NATIVE_WINDOW_FORMAT);
|
return getWindowProp(window, NATIVE_WINDOW_FORMAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t ANativeWindow_setBuffersGeometry(ANativeWindow* window, int32_t width,
|
||||||
|
int32_t height, int32_t format) {
|
||||||
|
native_window_set_buffers_geometry(window, width, height, format);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@ -131,14 +131,6 @@ typedef struct ANativeActivityCallbacks {
|
|||||||
*/
|
*/
|
||||||
void (*onNativeWindowCreated)(ANativeActivity* activity, ANativeWindow* window);
|
void (*onNativeWindowCreated)(ANativeActivity* activity, ANativeWindow* window);
|
||||||
|
|
||||||
/**
|
|
||||||
* The drawing window for this native activity has changed. During this time,
|
|
||||||
* old ANativeWindow object is still valid but no longer active and drawing
|
|
||||||
* should switch to the new ANativeWindow given here. After returning from
|
|
||||||
* this function, you must not touch the old window.
|
|
||||||
*/
|
|
||||||
void (*onNativeWindowChanged)(ANativeActivity* activity, ANativeWindow* window);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The drawing window for this native activity is going to be destroyed.
|
* The drawing window for this native activity is going to be destroyed.
|
||||||
* You MUST ensure that you do not touch the window object after returning
|
* You MUST ensure that you do not touch the window object after returning
|
||||||
|
@ -22,6 +22,15 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pixel formats that a window can use.
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
WINDOW_FORMAT_RGBA_8888 = 1,
|
||||||
|
WINDOW_FORMAT_RGBX_8888 = 2,
|
||||||
|
WINDOW_FORMAT_RGB_565 = 4,
|
||||||
|
};
|
||||||
|
|
||||||
struct ANativeWindow;
|
struct ANativeWindow;
|
||||||
typedef struct ANativeWindow ANativeWindow;
|
typedef struct ANativeWindow ANativeWindow;
|
||||||
|
|
||||||
@ -43,6 +52,22 @@ int32_t ANativeWindow_getHeight(ANativeWindow* window);
|
|||||||
*/
|
*/
|
||||||
int32_t ANativeWindow_getFormat(ANativeWindow* window);
|
int32_t ANativeWindow_getFormat(ANativeWindow* window);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Change the format and size of the window buffers.
|
||||||
|
*
|
||||||
|
* The width and height control the number of pixels in the buffers, not the
|
||||||
|
* dimensions of the window on screen. If these are different than the
|
||||||
|
* window's physical size, then it buffer will be scaled to match that size
|
||||||
|
* when compositing it to the screen.
|
||||||
|
*
|
||||||
|
* The format may be one of the window format constants above.
|
||||||
|
*
|
||||||
|
* For all of these parameters, if 0 is supplied than the window's base
|
||||||
|
* value will come back in force.
|
||||||
|
*/
|
||||||
|
int32_t ANativeWindow_setBuffersGeometry(ANativeWindow* window, int32_t width,
|
||||||
|
int32_t height, int32_t format);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user