Elidor

Members
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

101 Neutral

About Elidor

  • Rank
    Newbie
  1. SDL Surface Aligning

    I'd just like to say that it seems what I'm asking doesn't make much sense. I guess what I'm really asking for is an easier way to simulate a window builder for pixel coordinates without actually having to make one. Sorry about that I think I can figure it out from here.
  2. SDL Surface Aligning

    My question is knowing exactly how to blit aside from presets of centering and estimating like 1/5 of the way down the screen then 1/3 across. I'd like to know if there's a way I can attain better reference points than just right, center, and left alignment. For example if I blit a surface in one class it would be easier to use an inbetween class like the surface class above to use the previous surface as a reference to blit the other surface. To further illustrate what I'm aiming at: If I blit a surface1 centered at a screen at the top and I want to blit a surface2 just bellow that but have surface2 centered how could I go about that?
  3. Hello GameDev, I have question for you all. Is there any way to perfectly aligning surfaces aside from estimation. For example I know how to center, right, left align surfaces but how can I know where exactly 60 pixels is before I compile and check. I was thinking of making a program to test a surface images in a sandbox to attain pixels but if there is another way of attaining offsets this would save me quite a bit of trouble. Another thing while I'm at it. Is there a way to get the offsets of a blitted image in SDL. For example if I blit y onto buffer x is there a way I can get y's offsets from the SDL_Surface structure? The reason I ask this is because I'm attempting to make a more flexible Surface class for my TestEngine than the one on sdltutorials.com. Here's the header to illustrate my idea: #ifndef _SURFACE_H_ #define _SURFACE_H_ #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include <stdexcept> enum { LEFT_ALIGN, CENTER_ALIGN, RIGHT_ALIGN }; enum { TOP_ALIGN, MIDDLE_ALIGN, BOTTOM_ALIGN }; class Surface { public: Surface(); public: static SDL_Surface * onLoad(char * file, bool alpha); static void onDraw(SDL_Surface * dest, SDL_Surface * src, int x, int y); static void onDraw(SDL_Surface * dest, SDL_Surface * src, int x, int y, int x2, int y2, int w, int h); static void drawAligned(SDL_Surface * dest, SDL_Surface * src, int xAlignment = CENTER_ALIGN, int yAlignment = MIDDLE_ALIGN); static void drawAligned(SDL_Surface * dest, SDL_Surface * src, int x, int y, int w, int h, int xAlignment = CENTER_ALIGN, int yAlignment = MIDDLE_ALIGN); private: static SDL_Rect align(SDL_Surface * src, SDL_Surface * dest, const int & xAlignment, const int & yAlignment); public: static void transparent(SDL_Surface * dest, int r, int g, int b); }; #endif