Rev 3068 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3068 | Rev 3248 | ||
---|---|---|---|
Line 39... | Line 39... | ||
39 | cpt->ctrl.parent = (ctrl_t*)win; |
39 | cpt->ctrl.parent = (ctrl_t*)win; |
40 | 40 | ||
Line 41... | Line 41... | ||
41 | cpt->text = win->caption_txt; |
41 | cpt->text = win->caption_txt; |
Line -... | Line 42... | ||
- | 42 | ||
42 | 43 | cpt->bitmap.width = 1920; |
|
- | 44 | cpt->bitmap.height = CAPTION_HEIGHT; |
|
- | 45 | cpt->bitmap.flags = 0; |
|
43 | ctx->pixmap = user_alloc(1920*CAPTION_HEIGHT*4); |
46 | |
44 | if(!ctx->pixmap) |
47 | if( create_bitmap(&cpt->bitmap) ) |
45 | { |
48 | { |
46 | printf("not enough memory for caption bitmap\n"); |
49 | printf("not enough memory for caption bitmap\n"); |
47 | return 0; |
50 | return 0; |
Line 48... | Line -... | ||
48 | }; |
- | |
Line -... | Line 51... | ||
- | 51 | } |
|
49 | 52 | ||
50 | // printf("win_w %d win_h %d\n", win->w, win->h); |
53 | |
51 | 54 | // printf("win_w %d win_h %d\n", win->w, win->h); |
|
Line 52... | Line 55... | ||
52 | ctx->stride = win->w*4; |
55 | ctx->pixmap = &cpt->bitmap; |
Line 77... | Line 80... | ||
77 | 80 | ||
78 | void update_caption_size(window_t *win) |
81 | void update_caption_size(window_t *win) |
79 | { |
82 | { |
- | 83 | caption_t *cpt = &win->caption; |
|
Line 80... | Line 84... | ||
80 | caption_t *cpt = &win->caption; |
84 | bitmap_t *bitmap = cpt->ctx.pixmap; |
81 | 85 | ||
82 | int old_size; |
86 | int old_size; |
Line 83... | Line 87... | ||
83 | int new_size; |
87 | int new_size; |
84 | int stride; |
88 | int pitch; |
Line 85... | Line 89... | ||
85 | 89 | ||
Line 86... | Line 90... | ||
86 | old_size = cpt->ctx.stride * CAPTION_HEIGHT; |
90 | old_size = bitmap->pitch * bitmap->height; |
87 | old_size = (old_size+4095) & ~4095; |
91 | old_size = (old_size+4095) & ~4095; |
Line 88... | Line 92... | ||
88 | 92 | ||
89 | stride = win->w*4; |
93 | pitch = ALIGN(win->w*4, 16); |
Line 90... | Line 94... | ||
90 | 94 | ||
- | 95 | new_size = pitch * CAPTION_HEIGHT; |
|
Line 91... | Line 96... | ||
91 | new_size = stride * CAPTION_HEIGHT; |
96 | new_size = (new_size+4095) & ~4095; |
92 | new_size = (new_size+4095) & ~4095; |
97 | |
93 | 98 | if( new_size < old_size) |
|
94 | if( new_size < old_size) |
99 | user_unmap(bitmap->data, new_size, old_size-new_size); |
Line 113... | Line 118... | ||
113 | cpt->minimize_btn->ctrl.w; |
118 | cpt->minimize_btn->ctrl.w; |
114 | 119 | ||
Line 115... | Line 120... | ||
115 | }; |
120 | }; |
Line 116... | Line -... | ||
116 | - | ||
117 | typedef struct |
- | |
118 | { |
- | |
119 | uint32_t width; |
- | |
120 | uint32_t height; |
- | |
121 | uint32_t pitch; |
- | |
122 | uint32_t handle; |
- | |
123 | uint8_t *data; |
- | |
Line 124... | Line 121... | ||
124 | }bitmap_t; |
121 | |
Line 125... | Line 122... | ||
125 | 122 | ||
126 | extern int win_font; |
123 | extern int win_font; |
127 | 124 | ||
- | 125 | void draw_caption(caption_t *cpt) |
|
128 | void draw_caption(caption_t *cpt) |
126 | { |
Line 129... | Line -... | ||
129 | { |
- | |
130 | int *pixmap, *src; |
127 | int *pixmap, *src; |
131 | int i, j, w; |
- | |
132 | - | ||
133 | pixmap = cpt->ctx.pixmap; |
- | |
134 | src = res_caption_left; |
128 | rect_t rc; |
135 | - | ||
136 | for(i=0; i < CAPTION_HEIGHT; i++) |
- | |
137 | { |
- | |
138 | for(j=0; j < CAPTION_CORNER_W; j++) |
- | |
Line 139... | Line 129... | ||
139 | pixmap[j] = src[j]; |
129 | int i, j, w; |
140 | pixmap+= cpt->ctx.stride/4; |
130 | |
141 | src+= CAPTION_CORNER_W; |
131 | blit_raw(&cpt->ctx, res_caption_left, 0, 0, |
142 | }; |
132 | CAPTION_CORNER_W, CAPTION_HEIGHT, CAPTION_CORNER_W*4); |
143 | 133 | ||
144 | w = cpt->ctrl.w - (2*CAPTION_CORNER_W); |
134 | w = cpt->ctrl.w - (2*CAPTION_CORNER_W); |
Line 145... | Line 135... | ||
145 | if( w > 0) |
135 | if( w > 0) |
146 | { |
136 | { |
147 | pixmap = cpt->ctx.pixmap; |
137 | pixmap = (int*)cpt->ctx.pixmap->data; |
148 | pixmap+= CAPTION_CORNER_W; |
138 | pixmap+= CAPTION_CORNER_W; |
149 | src = res_caption_body; |
139 | src = res_caption_body; |
150 | 140 | ||
151 | for(i = 0; i < CAPTION_HEIGHT; i++) |
- | |
152 | { |
- | |
153 | for(j = 0; j < w; j++) |
- | |
154 | pixmap[j] = src[i]; |
- | |
Line -... | Line 141... | ||
- | 141 | for(i = 0; i < CAPTION_HEIGHT; i++) |
|
155 | pixmap+= cpt->ctx.stride/4; |
142 | { |
Line 156... | Line -... | ||
156 | } |
- | |
157 | }; |
- | |
158 | - | ||
159 | pixmap = cpt->ctx.pixmap; |
- | |
160 | pixmap+= cpt->ctrl.w - CAPTION_CORNER_W; |
- | |
161 | - | ||
162 | src = res_caption_right; |
143 | for(j = 0; j < w; j++) |
Line 163... | Line -... | ||
163 | - | ||
Line -... | Line 144... | ||
- | 144 | pixmap[j] = src[i]; |
|
- | 145 | pixmap+= cpt->ctx.pixmap->pitch/4; |
|
- | 146 | } |
|
- | 147 | ||
164 | for(i = 0; i < CAPTION_HEIGHT; i++) |
148 | // blit_raw(&cpt->ctx,res_caption_body, CAPTION_CORNER_W, 0, |
165 | { |
149 | // w, CAPTION_HEIGHT, 0); |
- | 150 | ||
Line -... | Line 151... | ||
- | 151 | }; |
|
166 | for(j = 0; j < CAPTION_CORNER_W; j++) |
152 | |
Line 167... | Line 153... | ||
167 | pixmap[j] = src[j]; |
153 | |
168 | pixmap+= cpt->ctx.stride/4; |
154 | blit_raw(&cpt->ctx,res_caption_right, cpt->ctrl.w - CAPTION_CORNER_W, 0, |
Line 169... | Line 155... | ||
169 | src+= CAPTION_CORNER_W; |
155 | CAPTION_CORNER_W, CAPTION_HEIGHT,CAPTION_CORNER_W*4); |
Line 259... | Line 245... | ||
259 | { |
245 | { |
260 | // printf("%s w:%d h:%d stride: %d\n",__FUNCTION__, |
246 | // printf("%s w:%d h:%d stride: %d\n",__FUNCTION__, |
261 | // cpt->ctrl.w, cpt->ctrl.h, cpt->ctx.stride); |
247 | // cpt->ctrl.w, cpt->ctrl.h, cpt->ctx.stride); |
262 | 248 | ||
Line 263... | Line 249... | ||
263 | Blit(cpt->ctx.pixmap, 0, 0, 0, 0, cpt->ctrl.w, cpt->ctrl.h, |
249 | Blit(cpt->ctx.pixmap->data, 0, 0, 0, 0, cpt->ctrl.w, cpt->ctrl.h, |
264 | cpt->ctrl.w, cpt->ctrl.h, cpt->ctx.stride); |
250 | cpt->ctrl.w, cpt->ctrl.h, cpt->ctx.pixmap->pitch); |
265 | };>>>>>>> |
251 | };>>> |