/platform/osx/scaffold/view.d

http://github.com/wilkie/djehuty · D · 74 lines · 53 code · 19 blank · 2 comment · 1 complexity · f3ad190f3f535f235dfcbe19053cfcca MD5 · raw file

  1. module scaffold.view;
  2. import platform.vars.view;
  3. import platform.vars.window;
  4. import platform.osx.common;
  5. import graphics.view;
  6. import graphics.graphics;
  7. import gui.window;
  8. import platform.osx.main;
  9. import core.string;
  10. import io.file;
  11. import io.console;
  12. import core.main;
  13. import graphics.bitmap;
  14. import core.definitions;
  15. extern (C) void _OSXViewCreate(_OSXViewPlatformVars** viewVars, int width, int height);
  16. extern (C) void _OSXViewCreateDIB(_OSXViewPlatformVars** viewVars, int width, int height);
  17. extern (C) void _OSXViewDestroy(_OSXViewPlatformVars* viewVars, int isDIB, int isWindow);
  18. extern (C) void* _OSXGetBytes(_OSXViewPlatformVars* viewVars);
  19. // views
  20. void ViewCreate(ref View view, ViewPlatformVars* viewVars) {
  21. _OSXViewCreate(&viewVars.vars, view.width(), view.height());
  22. }
  23. void ViewDestroy(ref View view, ViewPlatformVars* viewVars) {
  24. _OSXViewDestroy(viewVars.vars, cast(Bitmap)view !is null, viewVars.fromWindow == 1);
  25. viewVars.fromWindow = 0;
  26. }
  27. void ViewCreateDIB(ref Bitmap view, ViewPlatformVars* viewVars) {
  28. _OSXViewCreateDIB(&viewVars.vars, view.width(), view.height());
  29. viewVars.dibBytes = view.width() * view.height() * 4;
  30. }
  31. void ViewCreateForWindow(ref WindowView view, ViewPlatformVars* viewVars, ref Window window, WindowPlatformVars* windowVars) {
  32. // is done via WindowCreate
  33. viewVars.fromWindow = 1;
  34. viewVars.vars = windowVars.viewVars;
  35. }
  36. void ViewResizeForWindow(ref WindowView view, ViewPlatformVars* viewVars, ref Window window, WindowPlatformVars* windowVars) {
  37. }
  38. void ViewResize(ref View view, ViewPlatformVars* viewVars) {
  39. }
  40. void* ViewGetBytes(ViewPlatformVars* viewVars, ref ulong length) {
  41. length = viewVars.dibBytes;
  42. return _OSXGetBytes(viewVars.vars);
  43. }
  44. void* ViewGetBytes(ViewPlatformVars* viewVars) {
  45. return _OSXGetBytes(viewVars.vars);
  46. }
  47. void ViewUnlockBytes(ViewPlatformVars* viewVars) {
  48. return _OSXGetBytes(viewVars.vars);
  49. }
  50. uint ViewRGBAToInt32(ref bool _forcenopremultiply, ViewPlatformVars* _pfvars, ref uint r, ref uint g, ref uint b, ref uint a){
  51. return (b << 16) | (g << 8) | (r) | (a << 24);
  52. }
  53. uint ViewRGBAToInt32(ViewPlatformVars* _pfvars, ref uint r, ref uint g, ref uint b) {
  54. return (b << 16) | (g << 8) | (r) | 0xFF000000;
  55. }