Merge "Enable surface for host"
This commit is contained in:
committed by
Android (Google) Code Review
commit
3f214d5867
@@ -288,6 +288,8 @@ cc_library_shared {
|
||||
],
|
||||
include_dirs: [
|
||||
"external/vulkan-headers/include",
|
||||
"frameworks/native/libs/nativebase/include",
|
||||
"frameworks/native/libs/nativewindow/include"
|
||||
],
|
||||
shared_libs: [
|
||||
"libicui18n",
|
||||
@@ -297,6 +299,7 @@ cc_library_shared {
|
||||
"libandroidfw",
|
||||
"libcompiler_rt",
|
||||
"libutils",
|
||||
"libhostgraphics",
|
||||
],
|
||||
},
|
||||
linux_glibc: {
|
||||
|
||||
24
libs/hostgraphics/Android.bp
Normal file
24
libs/hostgraphics/Android.bp
Normal file
@@ -0,0 +1,24 @@
|
||||
cc_library_host_static {
|
||||
name: "libhostgraphics",
|
||||
|
||||
srcs: [
|
||||
":libui_host_common",
|
||||
],
|
||||
|
||||
include_dirs: [
|
||||
// Here we override all the headers automatically included with frameworks/native/include.
|
||||
// When frameworks/native/include will be removed from the list of automatic includes.
|
||||
// We will have to copy necessary headers with a pre-build step (generated headers).
|
||||
".",
|
||||
"frameworks/native/libs/nativebase/include",
|
||||
"frameworks/native/libs/nativewindow/include",
|
||||
"frameworks/native/libs/arect/include",
|
||||
],
|
||||
export_include_dirs: ["."],
|
||||
|
||||
target: {
|
||||
windows: {
|
||||
enabled: true,
|
||||
}
|
||||
},
|
||||
}
|
||||
36
libs/hostgraphics/gui/IGraphicBufferProducer.h
Normal file
36
libs/hostgraphics/gui/IGraphicBufferProducer.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2019 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_GUI_IGRAPHICBUFFERPRODUCER_H
|
||||
#define ANDROID_GUI_IGRAPHICBUFFERPRODUCER_H
|
||||
|
||||
#include <utils/RefBase.h>
|
||||
|
||||
namespace android {
|
||||
|
||||
class IGraphicBufferProducer : virtual public RefBase {
|
||||
public:
|
||||
enum class DisconnectMode {
|
||||
// Disconnect only the specified API.
|
||||
Api,
|
||||
// Disconnect any API originally connected from the process calling disconnect.
|
||||
AllLocal
|
||||
};
|
||||
};
|
||||
|
||||
} // namespace android
|
||||
|
||||
#endif // ANDROID_GUI_IGRAPHICBUFFERPRODUCER_H
|
||||
66
libs/hostgraphics/gui/Surface.h
Normal file
66
libs/hostgraphics/gui/Surface.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (C) 2019 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_GUI_SURFACE_H
|
||||
#define ANDROID_GUI_SURFACE_H
|
||||
|
||||
#include <gui/IGraphicBufferProducer.h>
|
||||
#include <ui/ANativeObjectBase.h>
|
||||
#include <utils/RefBase.h>
|
||||
#include <system/window.h>
|
||||
|
||||
namespace android {
|
||||
|
||||
class Surface : public ANativeObjectBase<ANativeWindow, Surface, RefBase> {
|
||||
public:
|
||||
explicit Surface(const sp<IGraphicBufferProducer>& bufferProducer,
|
||||
bool controlledByApp = false) {
|
||||
ANativeWindow::perform = hook_perform;
|
||||
}
|
||||
static bool isValid(const sp<Surface>& surface) { return surface != nullptr; }
|
||||
void allocateBuffers() {}
|
||||
|
||||
uint64_t getNextFrameNumber() const { return 0; }
|
||||
|
||||
int setScalingMode(int mode) { return 0; }
|
||||
|
||||
virtual int disconnect(int api,
|
||||
IGraphicBufferProducer::DisconnectMode mode =
|
||||
IGraphicBufferProducer::DisconnectMode::Api) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual int lock(ANativeWindow_Buffer* outBuffer, ARect* inOutDirtyBounds) {
|
||||
// TODO: implement this
|
||||
return 0;
|
||||
}
|
||||
virtual int unlockAndPost() { return 0; }
|
||||
virtual int query(int what, int* value) const { return 0; }
|
||||
|
||||
protected:
|
||||
virtual ~Surface() {}
|
||||
|
||||
static int hook_perform(ANativeWindow* window, int operation, ...) { return 0; }
|
||||
|
||||
private:
|
||||
// can't be copied
|
||||
Surface& operator=(const Surface& rhs);
|
||||
Surface(const Surface& rhs);
|
||||
};
|
||||
|
||||
} // namespace android
|
||||
|
||||
#endif // ANDROID_GUI_SURFACE_H
|
||||
Reference in New Issue
Block a user