Simplify core framebuffer management.

Remove one layer of indirection between the core's DisplayState
and a ProxyFramebuffer object. The main ideas behind this patch
are that:

- We don't need a QFrameBuffer object when in the core process,
  each proxy can receive display updates directly from QEMU.

- The DisplayChangeListener is really lame: its can't dissociate
  between several listeners that use the same callback pointers,
  so introduce DisplayUpdateListener in console.h to work around
  this. This is preferably to modifying DisplayChangeListener
  which is going to introduce conflicts with upstream.

- Simplify a lot the console code and display-core. Note that
  we can have several framebuffer clients at the same time now.

Note that QFrameBuffer is still used by both the UI program and
the standalone emulator.

Change-Id: I6d5ad6ecd9b34b9d9d1a30ea5000e875c285e84e
7 files changed
tree: 1c4ff6ef3cc7bd0c944b65385bba8782de35c875
  1. android/
  2. audio/
  3. block/
  4. distrib/
  5. docs/
  6. elff/
  7. fpu/
  8. gdb-xml/
  9. hw/
  10. images/
  11. memcheck/
  12. pc-bios/
  13. proxy/
  14. slirp/
  15. slirp-android/
  16. target-arm/
  17. target-i386/
  18. tcg/
  19. telephony/
  20. .gitignore
  21. a.out.h
  22. acl.c
  23. acl.h
  24. aes.c
  25. aes.h
  26. aio-android.c
  27. aio.c
  28. alpha.ld
  29. android-configure.sh
  30. android-rebuild.sh
  31. Android.mk
  32. arm-dis.c
  33. arm-semi.c
  34. arm.ld
  35. async.c
  36. balloon.h
  37. block.c
  38. block.h
  39. block_int.h
  40. blockdev.c
  41. blockdev.h
  42. bswap.h
  43. bt-host.c
  44. bt-host.h
  45. bt-vhci.c
  46. buffered_file.c
  47. buffered_file.h
  48. cache-utils.c
  49. cache-utils.h
  50. cbuffer.c
  51. cbuffer.h
  52. Changelog
  53. CHANGES.TXT
  54. charpipe.c
  55. charpipe.h
  56. CleanSpec.mk
  57. compatfd.c
  58. compatfd.h
  59. console-ui.c
  60. console.c
  61. console.h
  62. COPYING
  63. COPYING.LIB
  64. cpu-all.h
  65. cpu-common.h
  66. cpu-defs.h
  67. cpu-exec.c
  68. curses.c
  69. curses_keys.h
  70. cutils.c
  71. d3des.c
  72. d3des.h
  73. dcache.c
  74. dcache.h
  75. def-helper.h
  76. device_tree.c
  77. device_tree.h
  78. dis-asm.h
  79. disas.c
  80. disas.h
  81. dma-helpers.c
  82. dma.h
  83. dyngen-exec.h
  84. dynlink-static.c
  85. dynlink.h
  86. elf.h
  87. elf_ops.h
  88. envlist.c
  89. envlist.h
  90. exec-all.h
  91. exec.c
  92. feature_to_c.sh
  93. gdbstub.c
  94. gdbstub.h
  95. gen-charmap.py
  96. gen-icount.h
  97. gen-skin.py
  98. host-defs.h
  99. host-utils.c
  100. host-utils.h
  101. hostregs_helper.h
  102. hpet.h
  103. hxtool
  104. i386-dis.c
  105. i386-vl.ld
  106. i386.ld
  107. ia64.ld
  108. input.c
  109. INSTALL
  110. iolooper-select.c
  111. iolooper.h
  112. ioport-user.c
  113. ioport.c
  114. ioport.h
  115. json-lexer.c
  116. json-lexer.h
  117. json-parser.c
  118. json-parser.h
  119. json-streamer.c
  120. json-streamer.h
  121. keymaps.c
  122. keymaps.h
  123. kqemu.c
  124. kqemu.h
  125. kvm.h
  126. LICENSE
  127. linux_keycodes.h
  128. loader.c
  129. loadpng.c
  130. m68k.ld
  131. Makefile
  132. Makefile.android
  133. migration-dummy-android.c
  134. migration-exec.c
  135. migration-tcp-android.c
  136. migration-tcp.c
  137. migration.c
  138. migration.h
  139. module.c
  140. module.h
  141. MODULE_LICENSE_GPL
  142. monitor.c
  143. monitor.h
  144. net-android.c
  145. net-checksum.c
  146. net.c
  147. net.h
  148. NOTICE
  149. notify.c
  150. notify.h
  151. offset_layout.py
  152. osdep.c
  153. osdep.h
  154. outputchannel.c
  155. outputchannel.h
  156. path.c
  157. poison.h
  158. posix-aio-compat.c
  159. ppc-dis.c
  160. ppc.ld
  161. qbool.c
  162. qbool.h
  163. qdict.c
  164. qdict.h
  165. qemu-aio.h
  166. qemu-barrier.h
  167. qemu-char-android.c
  168. qemu-char.c
  169. qemu-char.h
  170. qemu-common.h
  171. qemu-config.c
  172. qemu-config.h
  173. qemu-error.c
  174. qemu-error.h
  175. qemu-io.c
  176. qemu-lock.h
  177. qemu-log.h
  178. qemu-malloc.c
  179. qemu-monitor.hx
  180. qemu-objects.h
  181. qemu-option.c
  182. qemu-option.h
  183. qemu-options.hx
  184. qemu-queue.h
  185. qemu-sockets-android.c
  186. qemu-sockets.c
  187. qemu-thread.c
  188. qemu-thread.h
  189. qemu-timer-ui.c
  190. qemu-timer.c
  191. qemu-timer.h
  192. qemu_debug.h
  193. qemu_file.h
  194. qemu_socket.h
  195. qemu_timers.h
  196. qerror.c
  197. qerror.h
  198. qfloat.c
  199. qfloat.h
  200. qint.c
  201. qint.h
  202. qjson.c
  203. qjson.h
  204. qlist.c
  205. qlist.h
  206. qobject.h
  207. qstring.c
  208. qstring.h
  209. readline.c
  210. readline.h
  211. README
  212. savevm.c
  213. sdl_keysym.h
  214. shaper.c
  215. shaper.h
  216. sockets.c
  217. sockets.h
  218. softmmu-semi.h
  219. softmmu_defs.h
  220. softmmu_exec.h
  221. softmmu_header.h
  222. softmmu_outside_jit.c
  223. softmmu_outside_jit.h
  224. softmmu_template.h
  225. sparc.ld
  226. sys-tree.h
  227. sysemu.h
  228. tap-win32.c
  229. targphys.h
  230. tcpdump.c
  231. tcpdump.h
  232. thunk.c
  233. thunk.h
  234. trace.c
  235. trace.h
  236. trace_common.h
  237. translate-all.c
  238. translate-op.c
  239. translate.make
  240. uboot_image.h
  241. usb-dummy-android.c
  242. usb-linux.c
  243. user-events-qemu.c
  244. user-events.h
  245. varint.c
  246. varint.h
  247. vgafont.h
  248. vl-android-ui.c
  249. vl-android.c
  250. vl.c
  251. vnc-android.c
  252. vnc-tls.h
  253. vnc.c
  254. vnc.h
  255. vnc_keysym.h
  256. vnchextile.h
  257. x86_64.ld