1 /* 2 * Copyright 2011-2012 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Alexander von Gluck IV, kallisti5@unixzen.com 7 */ 8 #ifndef _ARCH_FRAMEBUFFER_H 9 #define _ARCH_FRAMEBUFFER_H 10 11 12 #include <boot/platform.h> 13 #include <SupportDefs.h> 14 15 16 #define TRACE_VIDEO 17 #ifdef TRACE_VIDEO 18 # define TRACE(x...) dprintf(x) 19 # define CALLED() dprintf("%s()\n", __func__); 20 #else 21 # define TRACE(x...) ; 22 # define CALLED() ; 23 #endif 24 #define ERROR(x...) dprintf(x) 25 26 27 class ArchFramebuffer { 28 public: 29 ArchFramebuffer(addr_t base) 30 : 31 fBase(base) {}; 32 ~ArchFramebuffer() {}; 33 34 virtual status_t Init() { return B_OK; }; 35 virtual status_t Probe() { return B_OK; }; 36 virtual status_t SetDefaultMode() { return B_OK; }; 37 virtual status_t SetVideoMode(int width, int height, int depth) 38 { return B_OK; }; 39 40 virtual addr_t Base() { return fBase; }; 41 phys_addr_t PhysicalBase() { return fPhysicalBase; }; 42 size_t Size() { return fSize; }; 43 44 int Width() { return fCurrentWidth; }; 45 int Height() { return fCurrentHeight; }; 46 int Depth() { return fCurrentDepth; }; 47 int BytesPerRow() { return fCurrentBytesPerRow; }; 48 49 protected: 50 addr_t fBase; 51 phys_addr_t fPhysicalBase; 52 size_t fSize; 53 int fCurrentWidth; 54 int fCurrentHeight; 55 int fCurrentDepth; 56 int fCurrentBytesPerRow; 57 }; 58 59 60 #endif /* _ARCH_FRAMEBUFFER_H */ 61