{{htmlmetatags>metatag-robots=()
metatag-title=(The other features of MIDRES library)
metatag-keywords=(Optimization,MIDRES,design,isomorphis)
metatag-description=(In this page we give a summary of features of MIDRES Library.)
metatag-media-og:image=(::midres-logo-fb.png)
metatag-og:title=(The other features of MIDRES library)
metatag-og:description=(In this page we give a summary of features of MIDRES Library.)
}}
====== OTHER FEATURES OF THE MIDRES LIBRARY ======
To illustrate the other features of the library, let's think about this statement: **a code that adapts itself to different things does not imply an abstraction**. ALL my games rearrange themselves as a play area depending on the monitor surface. This adaptation occurs at compile time, not at run time.
{{ youtube>5TbPe9r3_qU?medium }}
For example, in the game [[:elevator|The Elevator]] there are as many floors as the drawable area allows. There are fewer planes in the VIC-20 version than in the C=64 version, but the game remain the same. [[:midres_library|MIDRES library]], on its own, does not place any constraints on width and height. In different terms, **the programmer who uses [[:midres_library|MIDRES library]] does not need to stay (whatever) on a "virtual" 40x25 character screen**, which is then reduced or enlarged depending on the actual hardware; or it doesn't have to think in terms of "possible sizes" by using ''#ifdef...#endif''. This is why it can be said that there is no abstraction because, however different the computer implementations are, **the concept of "screen" as "a rectangular surface" is not an abstraction but a fact**.
{{ :midres_library:isomorphism:totto_msx.jpg?nolink&400 |}}
In [[:midres_library|MIDRES library]] **it is not necessary to differentiate the initialization of the graphics** according to the "performance" of the same. For example, if the target platform has the colors or if it hasn't.
{{ :midres_library:isomorphism:clock_pulses_and_timing_levels.png?nolink&400 |}}
\adsense\
**There is the possibility of synchronizing the execution speed according to an external mechanism**, without introducing programmatic and / or empirical slowdown factors. This allows you to write a game on a computer with a slow processor and have it run perfectly on a computer with a fast processor. Without going crazy making "attempts" or forcing you to review the algorithmic logic for each target.
{{ :tutorial_protothread_image.jpg?nolink&400 |}}
**There is usually only one configuration for each platform.** It makes no sense, from the [[:midres_library|MIDRES library]] project point of view, that there are 10 possibilities to choose from. Only one is the efficient one and that must be chosen. Efficient, in this context, means written in such a way that the performances are acceptable on the reference platform and remain identical if you change it, regardless of which will be the target one, and without fine tuning.
Move to page [[midres_library:isomorphism:conclusions|CONCLUSIONS AND FORECASTS]].
[[:midres_library:isomorphism|{{ :midres-logo.png?nolink&600 |}}]]