pixelpump.hh (11168:f98eb2da15a4) | pixelpump.hh (11897:bfddfbac3a1a) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2015 ARM Limited | 2 * Copyright (c) 2015, 2017 ARM Limited |
3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 132 unchanged lines hidden (view full) --- 143 * <li>Horizontal Front Porch 144 * </ol> 145 */ 146class BasePixelPump 147 : public EventManager, public Clocked, 148 public Serializable 149{ 150 public: | 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 132 unchanged lines hidden (view full) --- 143 * <li>Horizontal Front Porch 144 * </ol> 145 */ 146class BasePixelPump 147 : public EventManager, public Clocked, 148 public Serializable 149{ 150 public: |
151 BasePixelPump(EventManager &em, ClockDomain &pxl_clk, unsigned pixel_chunk); | 151 BasePixelPump(EventManager &em, ClockDomain &pxl_clk, 152 unsigned pixel_chunk); |
152 virtual ~BasePixelPump(); 153 154 void serialize(CheckpointOut &cp) const override; 155 void unserialize(CheckpointIn &cp) override; 156 157 public: // Public API | 153 virtual ~BasePixelPump(); 154 155 void serialize(CheckpointOut &cp) const override; 156 void unserialize(CheckpointIn &cp) override; 157 158 public: // Public API |
158 /** Starting pushing pixels using the supplied display timings. */ 159 void start(const DisplayTimings &timings); | 159 /** Update frame size using display timing */ 160 void updateTimings(const DisplayTimings &timings); |
160 | 161 |
162 /** Render an entire frame in KVM execution mode */ 163 void renderFrame(); 164 165 /** Starting pushing pixels in timing mode */ 166 void start(); 167 |
|
161 /** Immediately stop pushing pixels */ 162 void stop(); 163 164 /** Get a constant reference of the current display timings */ 165 const DisplayTimings &timings() const { return _timings; } 166 167 /** Is the pixel pump active and refreshing the display? */ 168 bool active() const { return evBeginLine.active(); } --- 111 unchanged lines hidden (view full) --- 280 281 bool suspended; 282 Tick relativeTick; 283 }; 284 285 void beginLine(); 286 void renderPixels(); 287 | 168 /** Immediately stop pushing pixels */ 169 void stop(); 170 171 /** Get a constant reference of the current display timings */ 172 const DisplayTimings &timings() const { return _timings; } 173 174 /** Is the pixel pump active and refreshing the display? */ 175 bool active() const { return evBeginLine.active(); } --- 111 unchanged lines hidden (view full) --- 287 288 bool suspended; 289 Tick relativeTick; 290 }; 291 292 void beginLine(); 293 void renderPixels(); 294 |
295 /** Fast and event-free line rendering function */ 296 void renderLine(); 297 |
|
288 /** Convenience vector when doing operations on all events */ 289 std::vector<PixelEvent *> pixelEvents; 290 291 PixelEvent evVSyncBegin; 292 PixelEvent evVSyncEnd; 293 PixelEvent evHSyncBegin; 294 PixelEvent evHSyncEnd; 295 PixelEvent evBeginLine; --- 17 unchanged lines hidden --- | 298 /** Convenience vector when doing operations on all events */ 299 std::vector<PixelEvent *> pixelEvents; 300 301 PixelEvent evVSyncBegin; 302 PixelEvent evVSyncEnd; 303 PixelEvent evHSyncBegin; 304 PixelEvent evHSyncEnd; 305 PixelEvent evBeginLine; --- 17 unchanged lines hidden --- |