Merge branch 'master' of goat:git/dosdemo
authorJohn Tsiombikas <nuclear@mutantstargoat.com>
Mon, 29 Aug 2016 02:14:53 +0000 (05:14 +0300)
committerJohn Tsiombikas <nuclear@mutantstargoat.com>
Mon, 29 Aug 2016 02:14:53 +0000 (05:14 +0300)
.gitignore
README.md
dosdemo.sln [new file with mode: 0644]
dosdemo.vcxproj [new file with mode: 0644]
dosdemo.vcxproj.filters [new file with mode: 0644]
src/demo.c

index 8c14050..201c530 100644 (file)
@@ -8,3 +8,8 @@
 *.LNK
 *.log
 *.LOG
+Debug
+Release
+*.suo
+*sdf
+demo
index 4804bd7..48d645a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -25,9 +25,10 @@ which will in turn start dosbox, which will execute the DOS binary! If the gods
 are slumbering in valhalla, just typing `dosbox demo.exe` should do the trick.
 
 
-SDL backend
------------
-Run make to build (assuming make on your system is GNU make).
+Building and running with the SDL backend
+-----------------------------------------
+Run make to build (assuming make on your system is GNU make), or use the visual
+studio 2013 project on Windows.
 
 The SDL backend will scale the framebuffer up, by the factor specified in the
 `FBSCALE` environment variable. So run the demo as: `FBSCALE=3 ./demo` for
diff --git a/dosdemo.sln b/dosdemo.sln
new file mode 100644 (file)
index 0000000..5066871
--- /dev/null
@@ -0,0 +1,22 @@
+\r
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio 2013\r
+VisualStudioVersion = 12.0.40629.0\r
+MinimumVisualStudioVersion = 10.0.40219.1\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dosdemo", "dosdemo.vcxproj", "{15AB3B8C-B8BE-42ED-9DBC-EAE9C8FB9B9F}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|Win32 = Debug|Win32\r
+               Release|Win32 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {15AB3B8C-B8BE-42ED-9DBC-EAE9C8FB9B9F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {15AB3B8C-B8BE-42ED-9DBC-EAE9C8FB9B9F}.Debug|Win32.Build.0 = Debug|Win32\r
+               {15AB3B8C-B8BE-42ED-9DBC-EAE9C8FB9B9F}.Release|Win32.ActiveCfg = Release|Win32\r
+               {15AB3B8C-B8BE-42ED-9DBC-EAE9C8FB9B9F}.Release|Win32.Build.0 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/dosdemo.vcxproj b/dosdemo.vcxproj
new file mode 100644 (file)
index 0000000..404de16
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{15AB3B8C-B8BE-42ED-9DBC-EAE9C8FB9B9F}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>dosdemo</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <PlatformToolset>v120</PlatformToolset>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <PlatformToolset>v120</PlatformToolset>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>$(ProjectDir)\src;$(ProjectDir)\src\sdl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <DisableSpecificWarnings>4996;4244</DisableSpecificWarnings>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <AdditionalDependencies>SDL.lib;SDLmain.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>$(ProjectDir)\src;$(ProjectDir)\src\sdl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <DisableSpecificWarnings>4996;4244</DisableSpecificWarnings>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <AdditionalDependencies>SDL.lib;SDLmain.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="src\demo.c" />\r
+    <ClCompile Include="src\screen.c" />\r
+    <ClCompile Include="src\sdl\main.c" />\r
+    <ClCompile Include="src\tunnel.c" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="src\demo.h" />\r
+    <ClInclude Include="src\screen.h" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/dosdemo.vcxproj.filters b/dosdemo.vcxproj.filters
new file mode 100644 (file)
index 0000000..2a33941
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="src">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;h;inl</Extensions>\r
+    </Filter>\r
+    <Filter Include="src\sdl">\r
+      <UniqueIdentifier>{75ea1193-5afc-4dfe-ad41-ee85b47b7d35}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="src\demo.c">\r
+      <Filter>src</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="src\screen.c">\r
+      <Filter>src</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="src\tunnel.c">\r
+      <Filter>src</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="src\sdl\main.c">\r
+      <Filter>src\sdl</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="src\demo.h">\r
+      <Filter>src</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="src\screen.h">\r
+      <Filter>src</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
index 98f8001..9954cb5 100644 (file)
@@ -3,6 +3,7 @@
 #include <string.h>
 #include <math.h>
 #include <errno.h>
+#include <limits.h>
 #include "demo.h"
 #include "screen.h"
 
@@ -31,6 +32,8 @@ int demo_init(int argc, char **argv)
                return -1;
        }
 
+       /* clear the framebuffer at least once */
+       memset(fb_pixels, 0, fb_width * fb_height * fb_bpp / CHAR_BIT);
        return 0;
 }