07 Aug

6023

0

Newsletter 75

Starcraft 2 came out. Enough said.

Bitmap Drawing

Bitmaps are more or less the primary medium through which the Win32 subsystem draws things. However, the term refers to more than just the widely used format for images and the like. That format is generally considered a device independent bitmap (DIB). With a device independent version there of course exists a device dependent one, which is the format that a particular graphics device supports for drawing. Correctly converting between the two is integral to properly drawing windows and errors can cause major discolorations and other visible glitches. Jérôme Gardou has made fixing these problems the current project of the yarotows branch. DIBs hold a great deal of information to ensure the image is properly interpreted, such as the color format, resolution, and palette of the device that created it, compression information, and of course the red, green, and blue that defines the colors that the image is composed of. This information is stored in a series of data structures which unfortunately ReactOS had incomplete support for, especially some of the older legacy ones. Jérôme is plugging in the holes and is mostly done, with one nagging function not working correctly. Otherwise there should soon be another major merging from the yarotows branch.

LiveCD Networking

Cameron Gutman continues filling out the network stack and this time has squashed a series of bugs that prevented the liveCD from getting online. Network cards and certain protocols such as TCP/IP have drivers that handle them. NDIS is another driver that manages interactions between other network drivers, specifically informing protocol drivers like TCP/IP the existence of network cards. In order to be informed, protocol drivers have to register themselves with NDIS. In the case of ReactOS, the TCP/IP driver was not being started at all after it was installed and NDIS also failed to inform protocol drivers in general when new network devices were added to the system. Either one could have prevented networking from working at all but together they basically kept the liveCD from ever getting online, even ignoring a third problem where the DHCP service also could not find network devices that were being added. The first two problems have been resolved while the DHCP bug has been worked around though will need a proper solution in the future. For now at least people playing around with the liveCD will be able to get online and do more testing.

CMake

RBuild has been something of a necessary evil for the ReactOS project. While the original intentions, now long lost, were likely good, RBuild became something highly unwieldy and difficult to maintain. As a build system it failed to provide a good abstraction between the underlying tools like compilers and linkers, tying ReactOS to the GCC stack and preventing the use of other compilers that developers wanted to use like MSVC. Several efforts were made to try and fix its problems, the last major one being KJK::Hyperion's attempt. However, since his departure from the project no one else has shown any real desire to take on the task and many have questioned why ReactOS needs to have its own build system. The answer is that there is no good reason, at least not anymore. CMake had already attracted the attention of the developers before but again there wasn't any major push for a conversion. For the past few weeks however Amine Khaldi and the ARM team have begun working on a branch to switch ReactOS over. They have made considerable progress, successfully getting many of the user mode libraries to compile. There is still a great deal of work left, but hopefully CMake will finally put RBuild to rest, after which there are a few other infrastructure changes that the developers are keen to see.
 

News Type: