hdlcd.cc (10839:10cac0f0f419) | hdlcd.cc (10840:48039363f67a) |
---|---|
1/* 2 * Copyright (c) 2010-2013, 2015 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 --- 60 unchanged lines hidden (view full) --- 69 dmaStartAddr(0), dmaCurAddr(0), dmaMaxAddr(0), dmaPendingNum(0), 70 frameUnderrun(false), pixelBufferSize(0), 71 pixelIndex(0), doUpdateParams(false), frameUnderway(false), 72 dmaBytesInFlight(0), 73 startFrameEvent(this), endFrameEvent(this), renderPixelEvent(this), 74 fillPixelBufferEvent(this), intEvent(this), 75 dmaDoneEventAll(MAX_OUTSTANDING_DMA_REQ_CAPACITY, this), 76 dmaDoneEventFree(MAX_OUTSTANDING_DMA_REQ_CAPACITY), | 1/* 2 * Copyright (c) 2010-2013, 2015 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 --- 60 unchanged lines hidden (view full) --- 69 dmaStartAddr(0), dmaCurAddr(0), dmaMaxAddr(0), dmaPendingNum(0), 70 frameUnderrun(false), pixelBufferSize(0), 71 pixelIndex(0), doUpdateParams(false), frameUnderway(false), 72 dmaBytesInFlight(0), 73 startFrameEvent(this), endFrameEvent(this), renderPixelEvent(this), 74 fillPixelBufferEvent(this), intEvent(this), 75 dmaDoneEventAll(MAX_OUTSTANDING_DMA_REQ_CAPACITY, this), 76 dmaDoneEventFree(MAX_OUTSTANDING_DMA_REQ_CAPACITY), |
77 enableCapture(p->enable_capture) | 77 enableCapture(p->enable_capture), 78 workaround_swap_rb(p->workaround_swap_rb) |
78{ 79 pioSize = 0xFFFF; 80 81 for (int i = 0; i < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++i) 82 dmaDoneEventFree[i] = &dmaDoneEventAll[i]; 83 84 if (vnc) 85 vnc->setFrameBuffer(&fb); --- 413 unchanged lines hidden (view full) --- 499 } 500 501 schedule(renderPixelEvent, nextEventTick); 502} 503 504PixelConverter 505HDLcd::pixelConverter() const 506{ | 79{ 80 pioSize = 0xFFFF; 81 82 for (int i = 0; i < MAX_OUTSTANDING_DMA_REQ_CAPACITY; ++i) 83 dmaDoneEventFree[i] = &dmaDoneEventAll[i]; 84 85 if (vnc) 86 vnc->setFrameBuffer(&fb); --- 413 unchanged lines hidden (view full) --- 500 } 501 502 schedule(renderPixelEvent, nextEventTick); 503} 504 505PixelConverter 506HDLcd::pixelConverter() const 507{ |
507 return PixelConverter( 508 bytesPerPixel(), 509 red_select.offset, green_select.offset, blue_select.offset, 510 red_select.size, green_select.size, blue_select.size, | 508 ByteOrder byte_order( |
511 pixel_format.big_endian ? BigEndianByteOrder : LittleEndianByteOrder); | 509 pixel_format.big_endian ? BigEndianByteOrder : LittleEndianByteOrder); |
510 511 /* Some Linux kernels have a broken driver that swaps the red and 512 * blue color select registers. */ 513 if (!workaround_swap_rb) { 514 return PixelConverter( 515 bytesPerPixel(), 516 red_select.offset, green_select.offset, blue_select.offset, 517 red_select.size, green_select.size, blue_select.size, 518 byte_order); 519 } else { 520 return PixelConverter( 521 bytesPerPixel(), 522 blue_select.offset, green_select.offset, red_select.offset, 523 blue_select.size, green_select.size, red_select.size, 524 byte_order); 525 } |
|
512} 513 514void 515HDLcd::endFrame() { 516 assert(pixelBufferSize == 0); 517 assert(dmaPendingNum == 0); 518 assert(dmaBytesInFlight == 0); 519 assert(dmaDoneEventFree.size() == dmaDoneEventAll.size()); --- 300 unchanged lines hidden --- | 526} 527 528void 529HDLcd::endFrame() { 530 assert(pixelBufferSize == 0); 531 assert(dmaPendingNum == 0); 532 assert(dmaBytesInFlight == 0); 533 assert(dmaDoneEventFree.size() == dmaDoneEventAll.size()); --- 300 unchanged lines hidden --- |