Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <GL/glut.h>
- #include "stdlib.h"
- #include "windows.h"
- #include "math.h"
- BITMAPFILEHEADER bitmapFileHeader;
- BITMAPINFOHEADER bitmapInfoHeader;
- unsigned char* bitmap_Image;
- void ReadBitmap(const char* FileName)
- {
- FILE *file=fopen(FileName,"rb");
- if (bitmapInfoHeader.biSizeImage != 0)
- bitmap_Image = (unsigned char*)calloc(bitmapInfoHeader.biSizeImage, sizeof(unsigned char));
- if (!bitmap_Image)
- {
- free(bitmap_Image);
- fclose(file);
- return;
- }
- fread(bitmap_Image, bitmapInfoHeader.biSizeImage,1, file);
- int pixCnt = 0;
- int inc = (4 - (int)fmod((double)bitmapInfoHeader.biWidth*3, 4)) ; //every line is formed by 32bits parts
- if (inc == 4) inc = 0;
- int rowEndIndex = bitmapInfoHeader.biWidth*3; //first row
- for (int i = 0; i < (bitmapInfoHeader.biHeight); i++)
- {
- printf("new line\n");
- for (int cnt=pixCnt; cnt < rowEndIndex; cnt+=3,pixCnt+=3)
- {
- printf("/b - %d",bitmap_Image[cnt]);
- printf("/g - %d",bitmap_Image[cnt + 1]);
- printf("/r - %d\n",bitmap_Image[cnt + 2]);
- }
- pixCnt+=inc;
- rowEndIndex+=bitmapInfoHeader.biWidth*3 + inc;
- }
- }
- void renderScene(void) {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- ReadBitmap(/* file path */);
- glBitmap(838,837,0,0,0,0,bitmap_Image);
- glutSwapBuffers();
- }
- int main(int argc, char **argv) {
- // init GLUT and create Window
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
- glutInitWindowPosition(100,100);
- glutInitWindowSize(320,320);
- glutCreateWindow("Test");
- // register callbacks
- glutDisplayFunc(renderScene);
- // enter GLUT event processing cycle
- glutMainLoop();
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement