Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Side by Side Diff: lib/gfx/gfx.c

Issue 1741463002: [target][dartuinoP0] Allow for varying framebuffer format and stride. (Closed) Base URL: https://github.com/littlekernel/lk.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/dev/display.h ('k') | target/dartuinoP0/display/LS013B7DH06.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2008-2010, 2015 Travis Geiselbrecht 2 * Copyright (c) 2008-2010, 2015 Travis Geiselbrecht
3 * 3 *
4 * Permission is hereby granted, free of charge, to any person obtaining 4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files 5 * a copy of this software and associated documentation files
6 * (the "Software"), to deal in the Software without restriction, 6 * (the "Software"), to deal in the Software without restriction,
7 * including without limitation the rights to use, copy, modify, merge, 7 * including without limitation the rights to use, copy, modify, merge,
8 * publish, distribute, sublicense, and/or sell copies of the Software, 8 * publish, distribute, sublicense, and/or sell copies of the Software,
9 * and to permit persons to whom the Software is furnished to do so, 9 * and to permit persons to whom the Software is furnished to do so,
10 * subject to the following conditions: 10 * subject to the following conditions:
(...skipping 26 matching lines...) Expand all
37 #include <string.h> 37 #include <string.h>
38 #include <stdlib.h> 38 #include <stdlib.h>
39 #include <assert.h> 39 #include <assert.h>
40 #include <arch/ops.h> 40 #include <arch/ops.h>
41 #include <sys/types.h> 41 #include <sys/types.h>
42 #include <lib/gfx.h> 42 #include <lib/gfx.h>
43 #include <dev/display.h> 43 #include <dev/display.h>
44 44
45 #define LOCAL_TRACE 0 45 #define LOCAL_TRACE 0
46 46
47
48 // Convert a 32bit ARGB image to its respective gamma corrected grayscale value. 47 // Convert a 32bit ARGB image to its respective gamma corrected grayscale value.
49 static uint32_t ARGB8888_to_Luma(uint32_t in) 48 static uint32_t ARGB8888_to_Luma(uint32_t in)
50 { 49 {
51 uint8_t out; 50 uint8_t out;
52 51
53 uint32_t blue = (in & 0xFF) * 74; 52 uint32_t blue = (in & 0xFF) * 74;
54 uint32_t green = ((in >> 8) & 0xFF) * 732; 53 uint32_t green = ((in >> 8) & 0xFF) * 732;
55 uint32_t red = ((in >> 16) & 0xFF) * 218; 54 uint32_t red = ((in >> 16) & 0xFF) * 218;
56 55
57 uint32_t intensity = red + blue + green; 56 uint32_t intensity = red + blue + green;
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 653
655 return surface; 654 return surface;
656 } 655 }
657 656
658 /** 657 /**
659 * @brief Create a new graphics surface object from a display 658 * @brief Create a new graphics surface object from a display
660 */ 659 */
661 gfx_surface *gfx_create_surface_from_display(struct display_info *info) 660 gfx_surface *gfx_create_surface_from_display(struct display_info *info)
662 { 661 {
663 gfx_surface *surface; 662 gfx_surface *surface;
664 surface = gfx_create_surface(info->framebuffer, info->width, info->height, i nfo->stride, info->format); 663 gfx_format format;
664 switch (info->format) {
665 case DISPLAY_FORMAT_RGB_565:
666 format = GFX_FORMAT_RGB_565;
667 break;
668 case DISPLAY_FORMAT_RGB_332:
669 format = GFX_FORMAT_RGB_332;
670 break;
671 case DISPLAY_FORMAT_RGB_2220:
672 format = GFX_FORMAT_RGB_2220;
673 break;
674 case DISPLAY_FORMAT_ARGB_8888:
675 format = GFX_FORMAT_ARGB_8888;
676 break;
677 case DISPLAY_FORMAT_RGB_x888:
678 format = GFX_FORMAT_RGB_x888;
679 break;
680 case DISPLAY_FORMAT_MONO_8:
681 format = GFX_FORMAT_MONO;
682 break;
683 default:
684 dprintf(INFO, "invalid graphics format)");
685 DEBUG_ASSERT(0);
686 return NULL;
687 }
688
689 surface = gfx_create_surface(info->framebuffer, info->width, info->height, i nfo->stride, format);
665 690
666 surface->flush = info->flush; 691 surface->flush = info->flush;
667 692
668 return surface; 693 return surface;
669 } 694 }
670 695
671 /** 696 /**
672 * @brief Destroy a graphics surface and free all resources allocated to it. 697 * @brief Destroy a graphics surface and free all resources allocated to it.
673 * 698 *
674 * @param surface Surface to destroy. This pointer is no longer valid after 699 * @param surface Surface to destroy. This pointer is no longer valid after
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 839
815 gfx_flush(surface); 840 gfx_flush(surface);
816 841
817 gfx_surface_destroy(surface); 842 gfx_surface_destroy(surface);
818 843
819 return 0; 844 return 0;
820 } 845 }
821 846
822 #endif 847 #endif
823 #endif 848 #endif
OLDNEW
« no previous file with comments | « include/dev/display.h ('k') | target/dartuinoP0/display/LS013B7DH06.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698