Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Screensaver
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Underlying architecture == {{Expand list|date=February 2014}} Screensavers are usually designed and coded using a variety of programming languages as well as graphics interfaces. Typically the authors of screensavers use the [[C (programming language)|C]] or [[C++]] programming languages, along with [[Graphics Device Interface]] (GDI), such as [[OpenGL]] ("Open Graphics Library", which works on many, if not most, platforms capable of [[3D rendering]]), or alternatives such as [[Microsoft DirectX]] (which is limited to [[Microsoft]] platforms, mainly [[Microsoft Windows]] and the [[Microsoft Xbox]]), to craft their final products. Several [[OS X]] screensavers are created and designed using [[Quartz Composer]]. The screensaver interfaces indirectly with the operating system to cause the physical display screen to be overlaid with one or more graphic "scenes". The screensaver typically terminates after receiving a message from the operating system that a key has been pressed or the mouse has been moved. === Microsoft Windows === [[File:StarfieldSimulation.gif|alt=Animation of stars becoming bigger and moving away from the center of the image, simulating moving towards the stars.|thumb|A recreation of Starfield Simulation, one of the screensavers added in [[Windows 95]].]] If the system detects inactivity lasting longer than the time specified in the [[Control Panel (Windows)|control panel]], check if the active program is a simple program (and not another screensaver) by sending the "<code>WM_SYSCOMMAND</code>" message with the "<code>SC_SCREENSAVE</code>" argument. If the program calls in response the standard system function (<code>DefWindowProc</code>), the screensaver defined in the control panel screen runs. A Windows screensaver is a regular [[Portable Executable]] (PE) with the <code>.scr</code> file extension. This enables [[malware]] authors to add ".scr" to the name of any [[win32]] [[executable]] file, and thereby increase likelihood that users of [[Microsoft Windows]] will run it unintentionally. In addition, this program should support the following [[Command-line interface|command line]] parameters:<ref>{{Cite web |title=INFO: Screen Saver Command Line Arguments |url=http://support.microsoft.com/kb/182383 |url-status=live |archive-url=https://web.archive.org/web/20140202212351/http://support.microsoft.com/kb/182383 |archive-date=2014-02-02 |access-date=2014-02-01 |publisher=[[Microsoft]]}}</ref> With no parameter β shows the Settings dialog box or do nothing. ScreenSaver.scr <code>/s</code> Runs the screensaver. ScreenSaver.scr <code>/p</code> or <code>/l</code> <HWND> Previews the screensaver as child of window. <code><HWND></code> (presented as unsigned [[decimal number]]) is an identifier ([[Handle (computing)|handle]]) of the window in which the preview should appear. ScreenSaver.scr <code>/c</code> Shows the Settings dialog box, modal to the foreground window. ScreenSaver.scr <code>/a </code><HWND> Changes password, modal to window <code><HWND></code>. Windows 95 screensavers must handle it. === macOS === Under macOS, screensavers are regular macOS application bundles with the <code>.saver</code> file extension.<ref>{{Cite web |title=ScreenSaverView - ScreenSaver {{!}} Apple Developer Documentation |url=https://developer.apple.com/documentation/screensaver/screensaverview |url-status=live |archive-url=https://web.archive.org/web/20180925180703/https://developer.apple.com/documentation/screensaver/screensaverview |archive-date=2018-09-25 |access-date=2018-09-25 |website=Developer.Apple.com |publisher=[[Apple Inc.]] |language=en}}</ref> Internally, the screensaver must define a class that is subclass of <code>ScreenSaverView</code>. The new class must be assigned as <code>NSPrincipalClass</code> in the xcode project, so that when the screensaver is launched by the system, this class gets instantiated. === Atari === As one of the first screensavers appeared in [[8-bit]] Atari computers, forcing systemic color changes when the computer is idle lasting a few minutes (different times depending on the model), stored in the system [[Read-only memory|ROM]] of the computer.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Screensaver
(section)
Add topic