Logging I have finished the first write of my error logging system. This is more of an appendage to the error handler in that it gets handed errors by the handler and writes them to the output file.
Doxygen For the first time i have used Doxygen to dynamically create the documentation for the project. For those of you unfamiliar with it (as i still very much am), Doxygen scans all of the C++ documents in a given directory and looks for comments in the styles it recognises. With these it compiles documentation into HTML pages.
I have used it for the first build of the docs and now i am going through and adding brief comments to all necessary parts of my work.
Unicode During my latest session of GUI programming i have been working out whether or not to cater for multi-byte as well as Unicode. Unicode is pretty much a must nowadays, especially for me during this project because i want to support multiple languages in the GUI.
The conclusion i have arrived at is both multi-byte and unicode should be supported. This is because of the multi-language support and also because the GUI is targeted at beginner programmers who may not be fully aware of what Unicode is.
Error Handling As well as all this unicode business i have also been working on the error reporting and handling procedures. I have decided, with help and advice from others, that the best way of doing it is to always report an error via a code to a GUI-wide first_error variable. This allows easy retrieval via the accompanying function:
Along with this i have also provided the method:
-UseExceptions( bool val )
This allows the user to specify whether they wish for exceptions to be thrown on top of the normal error logging. All exceptions thrown are of type GUIException, which is derrived from std::exception. GUIException is given the description of the error.
Other things I have devised a system where, as a pre-build step for the library project, i run another small program. This program takes a text file that contains a listing of all the error codes along with brief description and writes a pair of C++ files, errorstring.h & .cpp. These then get compiled into the GUI library and contain an array of std::string's along with a function for accessing a string at a given index. This enables me to provide a reference to the user of all the error messages and their associated codes and at the same time keep the library code easily updated with the latest error messages that have been added. The user can also 'look up' the description associated with an error code by using the method:
-GetErrorString( Int code );
To Do - Error logging to file or otherwise - Geometry instancing code - DirectX Renderer - and lots, lot's more
In my opinion its been long since i have found an arcade game completely addictive. Recently i was introduced to Albatross 18, a great FREE golf game, japanese style.
The idea is that you start off with a generic character called Scout. Each character has certain attributes:
- Power - Control - Accuracy - Spin - Curve
As you play rounds of golf on any one of the 8 courses of varying difficulty you earn a play-money called Pang. The more of this you earn the more you can upgrade the attributes and therefore the more special shots you can make to in turn earn more pang.
It's in full 3D and is really solidly made, i recommend it to anyone.
Here is a screenie of me putting:
If you decide to give it a go, invite me as a buddy on the game, my username is PutterDave. The i can give you a few lessons.
Well it has been freakin ages since i posted anything here and so i thought it was about time to.
Recent times has been littered with starting and not finishing small projects. This has mainly been because i have been busy with uni work.
For those of you that don't know, i am reading Computing for Real Time Systems. This is a very code heavy degree. I have put into practice something along the lines of 7 or 8 different languages:
- 2 or 3 ASMs - For various embedded environments. - Java - Interface with hardware using JNI to simulate lifts and house security.
So as you can see i've been hella busy doing all this for my 3rd year. The results of this being that i passed everything, well the uni screwed me over by losing some of my coursework, so that is down as a fail despite having actually passed it.
All this has kept me from finishing the simple example of a memory manager i was writing up. I didn't realise but i had generated a bit of interest in it so i apologise for letting down those of you who were waiting for further updates. I am sorry to say that i am discontinuing for the time being because i have much more important work to begin with.
This important work is my final year project for year four of my degree. The plan, although not officially stated to uni, is to write a GUI library for DirectX and OpenGL application writers. From what i have seen there are only a few solid GUIs currently available and i believe they are not so simple to integrate into your application.
This is where my GUI aims to excel. I want it to be trivial to overlay onto your application. This ofcourse is only a simple proposition, i need to write alot of design documents before i'm truely ready to concrete any plan.
I had decided to write a GUI a good 2-3 months ago, basically towards the end of last semester and so over the summer i wrote the core components of a very basic GUI. I learned an awful lot about writing GUIs from this.
Here is a screenie of the GUI i bodged together:
I got as far as draggable windows within windows and buttons. The DirectX logo there is an imagecontrol indie the window.
Well my final year project GUI has been started and is taking shape, nothing to show for it yet though. I have used solid unit testing using CPPUnit for the first time in this project, so that is taking a bit of getting used to.
Well i will *try* to keep this updated regarding my GUI over the next few months,
Well i have made a solid start to my memory manager and all is looking well. At this moment it does nothing more than simply divert the implementation of both 'new's and 'delete's to a class and track the total bytes allocated.
Firstly i would like to welcome people back to my jounal, which hasn't been edited in a long time.
1) Had alot of uni work to get done, which incidentally has been going better than last year.
2) Had nothing to write about!
So here goes:
I have started work on a memory manager which will be presented to you guys for beta testing some time in the near future. I am still getting to grips with the concepts but my knowledge and prior experience with C++ is already paying dividends. This topic requires full knowledge of the language since it deals with alot of lower level code and syntax horrors.
As you guys may or may not know i have more interest in writing low level code and complex constructs with C++, also complex algorithms, so this is right up my street.
Right now ( 123 am ) i am considering an all nighter to get started on this but i have climbing tomorrow and im kinda stoned so guess i should sleep. I have also been eating cheese which has left me a little queezy.
Ehem, back off the tangent, i will begin work on the manager tomorrow afternoon/evening before my houses new drinking game called the, well, Timesplitters Drinking Game. Original huh?
Well i will be seeing you and check back here for more random garble.
I havnt posted in my journel for a while because i have had so much university work to do. Sadly this has also inhibited my progress with my current projects. However i have continued developing DynamicVertexBuffer and have produced a document describing its operation.