• Skip to sidebar navigation
  • Skip to content

Bitbucket

  • More
    ProjectsRepositories
  • Help
    • Online help
    • Learn Git
    • Welcome to Bitbucket
    • Keyboard shortcuts
  • Log In
Alexander Dahl
  1. Alexander Dahl

buildroot

Public
Actions
  • Clone
  • Compare

Learn more about cloning repositories

You have read-only access

Navigation
  • Source
  • Commits
  • Branches
  • All Branches Graph
  • Forks
  1. Alexander Dahl
  2. buildroot

Source

buildroot/package/fbv/0004-fix-bgr555.patch
Peter KorsgaardPeter Korsgaard committed 298cd8eaa2103 Feb 2015
Raw file
Source viewDiff to previous
 
1
[PATCH] fbv: support bgr555 format
2
​
3
Signed-off-by: Josh.Wu <josh.wu@atmel.com>
4
diff -Naur fbv-1.0b-ori/fb_display.c fbv-1.0b/fb_display.c
5
--- fbv-1.0b-ori/fb_display.c   2010-04-02 09:38:15.000000000 +0800
6
+++ fbv-1.0b/fb_display.c   2010-04-01 18:54:15.000000000 +0800
7
@@ -297,6 +297,14 @@
8
     ((b >> 3) & 31)        );
9
 }
10
 
11
+inline static unsigned short make15color_bgr(unsigned char r, unsigned char g, unsigned char b)
12
+{
13
+    return (
14
+   (((b >> 3) & 31) << 10) |
15
+   (((g >> 3) & 31) << 5)  |
16
+    ((r >> 3) & 31)        );
17
+}
18
+
19
 inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b)
20
 {
21
     return (
22
@@ -313,6 +321,14 @@
23
     u_int16_t *s_fbbuff;
24
     u_int32_t *i_fbbuff;
25
 
26
+    int is_bgr555 = 0;
27
+    struct fb_var_screeninfo var;
28
+    getVarScreenInfo(fh, &var);
29
+    if(var.red.offset == 0 && 
30
+       var.green.offset == 5 && 
31
+       var.blue.offset == 10)
32
+   is_bgr555 = 1;
33
+
34
     switch(bpp)
35
     {
36
    case 8:
37
@@ -325,15 +341,23 @@
38
    case 15:
39
        *cpp = 2;
40
        s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
41
-       for(i = 0; i < count ; i++)
42
-       s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
43
+       if(is_bgr555)
44
+           for(i = 0; i < count ; i++)
45
+           s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
46
+       else
47
+           for(i = 0; i < count ; i++)
48
+           s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
49
        fbbuff = (void *) s_fbbuff;
50
        break;
51
    case 16:
52
        *cpp = 2;
53
        s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
54
-       for(i = 0; i < count ; i++)
55
-       s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
56
+       if(is_bgr555)
57
+           for(i = 0; i < count ; i++)
58
+           s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
59
+       else
60
+           for(i = 0; i < count ; i++)
61
+           s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
62
        fbbuff = (void *) s_fbbuff;
63
        break;
  • Git repository management for enterprise teams powered by Atlassian Bitbucket
  • Atlassian Bitbucket v6.7.2
  • Documentation
  • Request a feature
  • About
  • Contact Atlassian
Atlassian

Everything looks good. We'll let you know here if there's anything you should know about.