Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark GDK / My sprite's too shy to show itself

Author
Message
Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 24th Mar 2008 22:12
Am I not understanding something regarding how GDK displays images and bitmaps and sprites? I have a bitmap that I'm drawing on and copying to the screen. Should any sprites I've created show up on top of this? I'm sure that if I'd been raised on DB itself all of this would be clear to me.

Thanks,

Lilith, Night Butterfly
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 24th Mar 2008 22:42
I wonder if your sprites are residing on bitmap 0 while your looking at another bitmap? I'm sure it shouldn't matter... but stranger things etc etc.

Can you make a test app that just does a sprite or two to make sure you got that down?

Also... I think you can change sprites to draw to back or something... but default they should be on top... Hmm.

I was "Drawing" lines on my screen for debugging reasons yesterday... and the lines appeared on top of the backdrop, behind the sprites.

Jason

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 24th Mar 2008 23:28
Part of the problem is that I'm working with my own Bitmap class and a derived , though they're pretty solid. Without going specific code what I do is the following.

The image and sprite are created as part of the Grid class and are loaded and associated as part of the constructor of the class. The sprite is the only moveable member of the class and is initially positioned over a white portion of the bitmap

I draw some stuff on the Grid bitmap, poll for keystrokes or mouse events, do what needs to be done (if anything) then copy the Grid bitmap to the screen. I then sync() the screen and voila. My understanding is that the sprite should show itself, even if I don't do anything to it, since it exists and has position, it should show up. I've tested for the existence of the image file and it's there.

I've also created a sprite with a completely different number from the bitmap related one associated with the same image file, though the image number is different. This is done at the same call level as, and just before the loop, containing the dbSync() call, so something should show. It just doesn't.

I've tried commenting out the portion where I copy the bitmap to the screen and just let the screen "accept" the sprite. Still no go.

I'm lost.

Lilith, Night Butterfly
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Mar 2008 00:30


See if that puts a little red square on your screen - in front of the back drop. See if that at least clears up the possible sprite misunderstanding that MIGHT be to blame.

I'm hoping this sparks an idea and your problem you can resolve. If not... then I can't do more without code bro.

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 25th Mar 2008 03:12
It looks like we're closing in on it. I ran your code in a new program and it worked as expected. I injected it into my code just ahead of my main loop, thereby cutting off main loop and it left me with a black screen while running your segment.

Then something you said tipped me off and I inserted a dbSetCurrentBitmap(0) before your loop and I got the red box. That was an indication that my initializing code was leaving my default bitmap as the background I build. However, I added a dbSetDefaultBitmap in front of my call to dbSync() in my code but the sprites still failed to display.

Can you give me a brief rundown on when the sprites are drawn, where to and how?

Thanks,

Lilith, Night Butterfly
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Mar 2008 03:53
Quote: "It looks like we're closing in on it"
YAY!

Quote: " I ran your code in a new program and it worked as expected."
Cool! (Bet it won't run on Vista! I used a memblock! LOL )

Quote: "Then something you said tipped me off and I inserted a dbSetCurrentBitmap(0) before your loop and I got the red box."
Woo Hoo!

Quote: "Can you give me a brief rundown on when the sprites are drawn, where to and how?"
No.. You just had to show off my short comings... you evil and Wicked person! LOL

I Suspect its like the 3d engine I wrote years ago before DirectX WAS.. and Video Card ram was all you had along with video card ports (SVGA programming yada yada).

Basically its 2D. Then you literally do math based on camera position to camera range - a set of coordinates that describe the frustrum. (Here you might paint the backdrop) Then you start calculating and drawing every full poly that lands inside the "Frustrum" moving closer to cam - (Zdepth - not necessary along Z axis).... Now Because the Sprites are defaulted to ON TOP - I suspect they are drawn last - but also use a Z-Ordered list - to draw the HIGH PRIORITY NUMBERED SPRITES FIRST, and the LOWEST PRIORITY NUMBER last. (sounds counter intuitive.. but GDK Sprites work where the ZERO is on top, and greater numbers are further back.)

Now thats just me making educated guess on how its done... but that's how I did in the past more or less when I was just making a 3d "engine" .. I should say a 3d library of C code - and it was out of a book - not my own brain child. but that's how it was done.

Everything was floats, for doing the drawing, not pixels.... so you could have proportional graphics, and all the drawing was 2d - and the 3d stuff was really taking 3d coords and camera positions and doing math to draw a triangle that would have the right perspective... was kinda cool actually... but I don't know if this rant helps you.

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 25th Mar 2008 06:10 Edited at: 25th Mar 2008 06:11
I understand what you're saying, though I'm sure that's not what GDK is doing outside of the sprites which are essentially image-textured paired triangles

I'm still trying to understand what the primary purpose is of having bitmaps and images. It's obvious that 2D drawing functions are done on bitmaps. But images don't have any innate drawing functionality unless you write your own. Both, and anyone can correct me on this if I'm wrong, are memory representations of graphical information. You're limited to 32 bitmaps for some reason. You can create bitmaps but images have to be created by loading a file or copying a memblock to it.

Having looked at some of your OOP code it seems that there may be some undocumented functions that I can use to get directly to the pixel information in an image and I think have a different method of manipulating that information, for better or worse. It means having to switch some of my bitmap functionality over to an image or memblock. More delays.

Lilith, Night Butterfly
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Mar 2008 13:23
Bitmaps I think are slower or something - I think Images are in the same formate as DirectX... I THINK... I'm not here (this time) to respond to your comments - though I will - I'm here because I called you BRO and my Wife popped in ... she's not a coder so she doesn't normally come here... but she saw this thread I guess.. because all of a sudden this morning before work I hear "You Called HER BRO?"

"I didn't know Lilith was a Girl..." I retorted... she follwoed up with "Lilith...Night Butterfly"..... This is where my face got REALLY RED.....

So - I figured that needed to be shared for pure laugh factor - at my own expense

Delays - I know what you mean. The good thing (I hope) is with that image/memblock format.. and C++ speed - I'm hoping I can do some neat stuff by writing some of my own gfx manipulation there.

Keep me posted.. I'm curious what you're up against. sounds like your code is to involved to post. Maybe you might have to make a mini version of he problem so we can disect it together a bit.

BEst Regards,
Jason

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 25th Mar 2008 15:55
Quote: "because all of a sudden this morning before work I hear "You Called HER BRO?"

"I didn't know Lilith was a Girl..." I retorted... she follwoed up with "Lilith...Night Butterfly"..... This is where my face got REALLY RED.....
"


It's okay. I think I saw where you'd used the term before and assumed that it was just a habit of yours. Considering that the term "dude" is now used (improperly IMO) for both genders it isn't so bad. But I still hate it when in mixed groups waiters will say, "What will you guys have?" I'd prefer the word "folks" over "guys" for mixed company.

On top of that my writing style probably conveys a certain maleness when I get into technical mode.

Quote: "Keep me posted.. I'm curious what you're up against. sounds like your code is to involved to post. Maybe you might have to make a mini version of the problem so we can disect it together a bit."


It has grown to be rather extensive at this point. I might find an opportunity to upload the OOP stuff somewhere at some point but I'd rather it be close to a finished product before someone takes what I have and uses it before it's complete and thoroughly tested. Stripping it down might be a bit intensive also.

Lilith, Night Butterfly
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Mar 2008 18:18
Quote: "Having looked at some of your OOP code..."

What'd ya think of that code? ...its still a work in progress of course!


Quote: "...it seems that there may be some undocumented functions that I can use to get directly to the pixel information in an image..."
Well... I THINK it's a DIRECTX format - so in theory - it might be possible to edit images directly if the format structure (from DX SDK) is known. Otherwise... if you make a memblock from an image its ALL DWORDS: 0=Width, 4=Height, 8=BitDepth (32 is all I've seen so far), position 12 is the beginning of the gfx data... DWORD pixels, RGBA format. Horizontal Rows: Row1, Row2, etc.



Quote: "... and I think have a different method of manipulating that information, for better or worse. "
Oh? How? Pointers? To Memblock? To Image itself? I've thought about getting a MEMBLOCK pointer and working it raw... definately would be even faster.

Quote: "It means having to switch some of my bitmap functionality over to an image or memblock."
Or just keeping what you have, and adding more stuff to your toolset library

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 25th Mar 2008 20:21 Edited at: 25th Mar 2008 20:22
Quote: "
Quote: "... and I think have a different method of manipulating that information, for better or worse. "
Oh? How? Pointers? To Memblock? To Image itself? I've thought about getting a MEMBLOCK pointer and working it raw... definately would be even faster."

I'm basing this mostly on the things I picked up from studying SDL, which does much but at a more primative level. It's closer to Direct X.

AAR, I tend not to think in terms of DWORD. From my perspective it all looks like unsigned int. If I type cast a pointer to the data as a (unsigned int *) I can treat the data in a different way. RGBA becomes



This works if r, g, b and a are known to be restricted to a 0 - 255 range. If not then they need to be masked with 0X0F before they're shifted into position.

The tricky part is using the pointer. It should take into account that the width is actually the image/memblock width divided by 4 since the pointer accounts for the size of the data. Going from memory (I tend to re-invent this particular wheel in each new API) if I were to fill in a box it might look something like this (pseudocode follows




Width is the number of bytes across in the image/memblock.

I tend to agonize over this code since I don't trust myself to steal it from my own code when I go to a new API. The advantage of using the pointer is that you don't have to recalculate the position except when you're dropping on the vertical level. And even that is a quick bit of pointer arithmatic. I could very likely declare pixel and yhold as dbColor *.

Staring at that code makes me think I could get really glib with it by setting yhold before the loop as in


and then do



after the inner loop. There's probably no savings there but it make the code look more concise and makes me look clever.

Lilith, Night Butterfly
I'm not a programmer but I play on in the office
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Mar 2008 20:47 Edited at: 25th Mar 2008 21:01
Or precalc Width/4 ... and just do pointer math

ptr+=4
...
(end of row?)
ptr+=WidthPreCalced;


[edit]
I worded that badly... it just read wrong...

I meant to say I'm impressed with your way of approaching this stuff - you're Sharp!
[/edit]

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 25th Mar 2008 21:03
Quote: "Or precalc Width/4 ... and just do pointer math "

True, though the compiler might be smart enough to optimize something like that. How about speeding it up with

Width >> 2

Talk about your low level mind.

Quote: "I like your low level mind! You're Sharp."

Ummm. Other people call it some sort of compulsive disorder.

For some reason I've always had an inclination to make code run as fast as possible, or at least not needlessly slower. My first computer was an Altair 8800, which predates the IBM PC and was put together with a soldering iron, and ran at something around 1MHz. Although I expected all my programming to be done BASIC I ended up doing more assembly language than anything else.

I wrote a program once to try to win a contest in Games magazine but only knew brute force method. It ran for days on end before I just had to run with what I had. Later the magazine re-ran the thing as a puzzle instead of a contest and I re-tried it in simple C as an exercise, though the CPU was much faster than my 8800. I used arrays in several portions to track paths and got the thing to arrive at a solution in something like eight hours. I then modified the program to use pointers instead of arrays, compiled the program, ran off to teach my C class expecting to come back to the office to find the program still running. It had finished. I ran it again only to find that it completed in 15 minutes. Pointers do make a difference.

That's one of the reasons I started to back off from BASIC. If a language didn't implement pointers then I figured it wouldn't be fast enough for my compulsive behavior.

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Mar 2008 21:12
LOL - You're AWESOME! - I have the same malady! I Started on a Timex Sinclair - 2k ram - 16k memory expansion pack... BASIC though... then I got a C64 - Basic at first - but SPEED! Why were games I bought FASTER than my Code?

I bought a Radio Shack kit microprocessor thing - had only a hexadecimal keypad and a LED two digit display. I got the hang of assembly... then that THICK book I had for my C64 Assembly Language Reference all of a sudden made sense.. and I was hooked!

...and YEAH! Pointers ROCK! I'm pointer crazy.

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 25th Mar 2008 21:27
Amazing what seemed so spectacular to us back in those days. I was somewhat into hardware back then but things have gotten too micronized for me to do much anymore.

My Commodore was a C-128 because it also ran CP/M while allowing me to access the hardware of the C64 side of things. I wrote a kewl program that let me compile text code into music and play it back on the SID chip. It also included a text editor I wrote along with a means of defining instrument sounds to use by controlling the ASDR parameters. Believe it or not the whole thing assembled into 12K of program.

Later I wrote a similar program on a PC and it compiled to 120K before adding the menu system.

Gawd, I miss the days when I had so much drive and passion.

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
Codger
21
Years of Service
User Offline
Joined: 23rd Nov 2002
Location:
Posted: 26th Mar 2008 02:29 Edited at: 26th Mar 2008 02:30
Wow you guy's "sorry Lilith" have gone a long way from a missing sprite.

In my opinion you are missing some of the reasons to use GDK and that is the grunt work of peeking & poking has been done for you. Far greater productivity can be gained from reviewing the flow of a program than a more efficient way of setting the color of a line.

Out of the box DGK with DP can let you create a scene that has hundreds of interacting objects in just a hand full of lines. As some one who started with a programmable calculator then leaped to an apple ][. Having all the grunt work done for me is fantastic.

I am looking forward to designing games on the holodeck with verbal statements like "make the saloon just like the one from gunsmoke"

Enjoy

Codger

System
PIV 2.8 MZ 512 Mem
FX 5600 256 mem
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 26th Mar 2008 02:55
I love ya Codger - you're awesome - but I have to AGREE and DISAGREE.. meaning I agree with you about the joys of DarkGDK but I disagree with you on:

Quote: "In my opinion you are missing some of the reasons to use GDK and that is the grunt work of peeking & poking has been done for you."


The grunt work that was done for us was slow slow, they added image support - but not all the other niceties that bitmap related stuff have.

Bitmaps limited to 32 - and slow - but you can manipulate.

Images - fast - but rigid - no REAL manipulation support.

Make a memblock from an image (or accessing the image data directly - still a mystery though) allows one to add to the wonderful CORE we have in DarkGDK - and allows COMPLETE pixel level control.. Also - all this can happen independant of the GPU - a memblock (maybe images not being rendered also) are not in the video ram... memblock are in your PC ram.. so one can draw a GUI window in a memblock - convert to image - then sprite - BANG - GUI!

Ligth mapping... Realtime morphing of sprites, all kinds of stuff without hitting the bitmap throughput issues and worse - the bitmap limit of 32max - one of which is the display!

Writing assembly speed C++ is not missing the point - but allows us to REALLY squeeze in cool stuff with less clock cycles.

I blew out GDK frame rates with this huge landscape I did - and ONLY after breaking it all down - adding frustrum culling - and even then optimizing how the culling worked - I EVENTULLY got the frame rates up to the sync rate 90% of the time! Drops to 30fps, and even an occasional 20fps (on my slow machine) WAS MUCH faster than GDK out-the-box.

Holodeck is awesome... but if someone didn't pay attention to the details... how would it know how to look up and disect the "like gunsmoke" part of the holodeck verbal request? LOL

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 26th Mar 2008 03:05
Quote: "In my opinion you are missing some of the reasons to use GDK and that is the grunt work of peeking & poking has been done for you. Far greater productivity can be gained from reviewing the flow of a program than a more efficient way of setting the color of a line.

Out of the box DGK with DP can let you create a scene that has hundreds of interacting objects in just a hand full of lines. As some one who started with a programmable calculator then leaped to an apple ][. Having all the grunt work done for me is fantastic.
"

But I still can't see my sprite and that's what this discussion really is about, despite the slight branching. If I can't figure out why my sprite won't display after a bitmap is copied to the screen then I have to look at alternate ways of doing it. Being able to draw to an image and displaying it via a sprite seems to be the route. But having to copy the bitmap to an image takes up time as does copying the bitmap to the screen. Being able to tweak the image handling without copying seems to be the way to go.

Mind you, I appreciate what GDK can do but my first attempt is relatively modest and yet I'm still working on a hurdle the best way I know how.

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 26th Mar 2008 03:10
have you tried re "dbSprite(id,x,y,imgid)" AFTER the bitmap thingy?

Codger
21
Years of Service
User Offline
Joined: 23rd Nov 2002
Location:
Posted: 26th Mar 2008 06:14
@ Lilith

Does this work for you?





Codger

System
PIV 2.8 MZ 512 Mem
FX 5600 256 mem
Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 26th Mar 2008 15:53
Quote: "Does this work for you?"


Codger,

Similar code did work for me as provided by Jason. However, the issue is a bit deeper than sprites not showing up. To reiterate a bit....

I'm using some OOP code that I'm developing and the issue seems to revolve around the bitmap, I think. The code that Jason gave me displayed the sprite fine if I didn't declare a Bitmap class object. However, since my code is built up around the Bitmap class, or more precisely a class derived from it, it's hard to strip things down without gutting the code too much and thereby hiding the source of the problem. Something of a Heisenberg thingy in reverse.

I think my best bet is to start fresh with a minimal bitmap and try the thing with my Bitmap class and again with just the bitmap as used directly in GDK.

Please tell if I'm wrong in assuming that the sprites are drawn to the screen when dbSync() is called. A bitmap copied to the screen (bitmap 0) should populate the screen first followed by the sprites which would then be drawn on top. Correct?

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 26th Mar 2008 15:56
@Jason

Quote: "have you tried re "dbSprite(id,x,y,imgid)" AFTER the bitmap thingy?"


Yes, and there's still no change. I'm going to have to back off and look at this with minimal code and see if I can either make it work or make it fail based on which happens by default and then work backwards to find where things change.

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 26th Mar 2008 16:48
THIS IS FRUSTRaTING!!!!

1: I KNOW you Can code - I smell workaround around the corner
2: Your approach to coding generally sound VERY sound
3: The last little "try this" I gave SEEMS like it should work Fine even if bitmap paste is a little mischeivious in its behavior

This will be one of TWO things: 1 - you made a silly error somewhere in your code that is so mundane you overlooked it OR you ran into a GDK bug and you need to get around it.

(My most recent Bitmap/image/Sprite related bug - is that if you GET IMAGE with the "Texture" flag set to ZERO which MEANS "I want to use this image as a texture - so filter/stretch it .. whatever" then the image - diplays if you apply to a sprite - only partially. The GetImage size commands report "original - prestretch dimensions" but you can't diplay the image properly and I doubt manipulate it once its "texture ready".... maybe not a bug - but certainly less than stellar behavior... it it modified the image - fine - why do some things not reeprot its been modifed? Ugh... watch out for this quirk)

jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 27th Mar 2008 16:42
Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 27th Mar 2008 16:57
Quote: "Lilith - did you try "paste sprite" ????"


Yes, I did, with no difference.

For the moment I'm forced to take a couple of days off from investigating this due to other pressures. I did some testing yesterday but won't have the time to put together a full run down on the results until the weekend.

I do appreciate yours, and everyone else's, input on this effort. I'll be back in a couple days.

BTW, I'm trying to get organized on the whole programming process and came across a program called FreeMind at http://www.pcworld.com/downloads/file/fid,62767-page,1-c,office/description.html that, although it isn't so much a programming tool, let's me put my thoughts and processes on paper as it were.

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 27th Mar 2008 17:51
Quote: "For the moment I'm forced to take a couple of days off from investigating this due to other pressures."
I Hope everything is well with you!


Quote: "[I] came across a program called FreeMind "

Downloaded - will scope it out... makes sense - worth checking it out.

Take care - don't forget to report success or failure time permitting!

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 1st Apr 2008 03:04
By George, I think I've got it. And was all my fault. Two faults actually, though the first was obscure and second was just stupidity on my part. Now that I've gotten the confession out of the way....

The first problem was in the manner in which I handled the constructors for the Sprite and Image classes. Very likely the Bitmap class also, though I'll need to check it out. Here's what I was doing wrong, even though I don't understand why it was wrong.

Here's what the constructors look like now:



There are three constructors, one a default and the other two designed to accept certain information on creation. nextSpriteNumber is a static variable for the class and gets updated Notice that there's some code that's duplicated in all three constructors. Originally I had it so that these two constructors called the default constructor so I didn't need to duplicate code. That's where things got weird. The spriteNumber variable would update when it was set but as soon as I exited back to the constructor function that called it, the variable reset to its prior stack value.

Once that was straightened out in a test environment I ran into another error that was easily fixed. I have the objects returning their respective numbers but in the Image class I had it returning nextImageNumber instead of imageNumber.

I haven't moved this over to my project but I have high hopes that the problem has been resolved.

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 2nd Apr 2008 06:42
Self quote:
Quote: "I haven't moved this over to my project but I have high hopes that the problem has been resolved."


Okay, I've nailed down the problem. It should have been obvious but apparently not to this adle-brained bimbette. In order for the sprites to show up the current bitmap must be set to the screen before calling dbSync(). This means that all drawing operations to the bitmap must be preceded with a call to set the bitmap as the current rather than assuming that it is from a preceding operation. It should then be copied to the screen before the screen is set to the current bitmap then synced.

Thanks to everyone who helped me talk out this problem, especially Jason. Thanks, bro! I still have a ways to go but I think I'm past this roadblock.

Lilith, Night Butterfly
I'm not a programmer but I play one in the office
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 2nd Apr 2008 06:59
Quote: "Thanks to everyone who helped me talk out this problem, especially Jason. Thanks, bro! I still have a ways to go but I think I'm past this roadblock"


LOL - AWESOME! Good Job! You're Welcome - ALWAYS!.... Um... Lilith


Seriously - Good work! Like I was discussing with IanM once - its always the simple stuff thats gets us - even veterans!

Lilith
16
Years of Service
User Offline
Joined: 12th Feb 2008
Location: Dallas, TX
Posted: 3rd Apr 2008 06:11
True that. The real problem is that there are things going on in the background that we don't know how they work without having access to the code. I've started the process of documenting my classes but I'm having to make some assumptions (and testing some things before making firm statements) that I find hard to put into documentation.

Just a mention that I've tried to avoid the need to keep switching back to the screen in-code by having my Bitmap class do this automatically. I have a CopyTo(Bitmap bm) method that sets bm to the current bitmap under the assumption that copying the bitmap to the screen is almost the last thing to do before doing a dbSync().

Lilith, Night Butterfly
I'm not a programmer but I play one in the office

Login to post a reply

Server time is: 2024-09-29 17:24:34
Your offset time is: 2024-09-29 17:24:34