AndroidÔÉú(Native)C¿ª·¢Ö®¶þ framebufferƪ
Èç¶ÔAndroidÔÉú(Natvie)C¿ª·¢»¹ÈκÎÒÉÎÊ£¬Çë²ÎÔÄhttp://emck.avaw.com/?p=205
ËäÈ»ÏÖÔÚÄÜͨ¹ý½»²æ»·¾³±àÒë³ÌÐò£¬²¢pushµ½AndroidÉÏÖ´ÐУ¬µ«ÄÇÖ»ÊÇconsolę³ÌÐò£¬ÊDz»ÊÇÓÐЩµ¥µ÷ÄØ£¿ÏÂÃæ¾ÍÒª¿´ÈçºÎͨ¹ýLinuxµÄ framebuffer ¼¼ÊõÔÚAndroidÉϻͼÐΣ¬¹ØÓÚLinuxµÄframebuffer¼¼Êõ£¬ÕâÀï¾Í²»ÔÙÏêϸ½²½âÁË£¬Çë´ó¼Ògoogleһϡ£
²Ù×÷framebufferµÄÖ÷Òª²½ÖèÈçÏ£º
1¡¢´ò¿ªÒ»¸ö¿ÉÓõÄFrameBufferÉ豸£»
2¡¢Í¨¹ýmmapµ÷ÓðÑÏÔ¿¨µÄÎïÀíÄÚ´æ¿Õ¼äÓ³Éäµ½Óû§¿Õ¼ä£»
3¡¢¸ü¸ÄÄÚ´æ¿Õ¼äÀïµÄÏñËØÊý¾Ý²¢ÏÔʾ£»
4¡¢Í˳öʱ¹Ø±ÕframebufferÉ豸¡£
ÏÂÃæµÄÕâ¸öÀý×Ó¼òµ¥µØÓÃframebuffer»ÁËÒ»¸ö½¥±äµÄ½ø¶ÈÌõ£¬´úÂë framebuf.c ÈçÏ£º
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
inline static unsigned short int make16color(unsigned char r, unsigned char g, unsigned char b)
{
return (
(((r >> 3) & 31) << 11) |
(((g >> 2) & 63) << 5) |
((b >> 3) & 31) );
}
int main() {
int fbfd = 0;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
long int screensize = 0;
char *fbp = 0;
int x = 0, y = 0;
int guage_height = 20, step = 10;
long int location = 0;
// Open the file for reading and writing
fbfd = open(”/dev/graphics/fb0″, O_RDWR);
if (!fbfd) {
printf(”Error: cannot open framebuffer device.\n”);
exit(1);
}
printf(”The framebuffer device was opened successfully.\n”);
// Get fixed screen information
if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo)) {
printf(”Error reading fixed information.\n”);
exit(2);
}
// Get variable screen information
if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo)) {
printf(”Error reading variable information.\n”);
exit(3);
}
printf(”sizeof(unsigned short) = %d\n”, sizeof(unsigned short));
printf(”%dx%d, %dbpp\n”, vinfo.xres, vinfo.yres, vinfo.bits_per_pixel );
printf(”xoffset:%d, yoffset:%d, line_length
Ïà¹ØÎĵµ£º
#include <stdio.h>
#define MAXHIST 15
#define MAXWORD 11
#define IN 1
#define OUT 0
//´òÓ¡ÊäÈëÖе¥´Ê³¤¶ÈµÄˮƽ·½ÏòÖ±·½Í¼£¬
void main()
{
int c, i, nc, state;
int len; //length of each bar
int maxvalue; &n ......
ÔÚº¯ÊýÌåÖÐÌí¼ÓÒÔÏ´úÂë:×¢£ºmemcpyÖеÄbitmapΪbmpÉú³ÉµÄcÎļþÊý×éÃû
int width = 533;
int height = 615;
BYTE* DDBdata=new BYTE[width*height*2];
BYTE* DIBdata;
memcpy(DDBdata,(void *)bitmap,width*height*2);
  ......
typedef ÉùÃ÷£¬¼ò³Æ typedef£¬ÎªÏÖÓÐÀàÐÍ´´½¨Ò»¸öеÄÃû×Ö¡£±ÈÈçÈËÃdz£³£Ê¹Óà typedef À´±àд¸üÃÀ¹ÛºÍ¿É¶ÁµÄ´úÂë¡£ËùνÃÀ¹Û£¬ÒâÖ¸ typedef ÄÜÒþ²Ø±¿×¾µÄÓï·¨¹¹ÔìÒÔ¼°Æ½Ì¨Ïà¹ØµÄÊý¾ÝÀàÐÍ£¬´Ó¶øÔöÇ¿¿ÉÒÆÖ²ÐÔºÍÒÔ¼°Î´À´µÄ¿Éά»¤ÐÔ¡£
µÚÒ»¡¢ËĸöÓÃ;
ÓÃ;һ£º
¶¨ÒåÒ»ÖÖÀàÐ͵ıðÃû£¬¶ø²»Ö»ÊǼòµ¥µÄºêÌæ»»¡£¿ÉÒÔÓÃ×÷ͬʱÉùÃ÷Ö¸ ......
ÎÒÕâÁ½ÌìÔÚCSDNÂÛ̳¿ªÁËÒ»¸öÉ¢·ÖÌù£¬ÏëÐû´«Ò»ÏÂÎÒµÄÊé¡£´ó¶àÊýÅóÓÑ»¹ÊǺÜÓѺõ쬶ÔÎÒµÄÖ§³ÖºÍ¹ÄÀøºÜ¶à£¬ÎÒÒ²ºÜ¸Ð¼¤¡£
ÍøÖ·ÔÚÕâÀhttp://topic.csdn.net/u/20091216/22/5a6594be-21e6-459e-ab41-57755273f465.html
µ±È»£¬Ò²ÓÐÅóÓÑÈÏΪФijÈË´µÅ££¬Ëµ0bug²»¿ÉÄÜ£¬²¢ÇÒÒþÒþÓÐPKµÄÒâ˼£¬ÎÒÄØÃ»°ì·¨£¬Ð´Á˸ö˵Ã÷¡£
ÕâÀïÏëÁ ......
ÈçÏ´úÂë±àÒëÔËÐоͻáÌáʾR6002´íÎó #include
struct xxx{
float score;
};
int main()
{
xxx* p = new xxx;
scanf( "%f" , &p->score );
delete p;
} ½â¾ö·½°¸ºÜ¼òµ¥ int main()
{
xxx* p ......