Compila en Windows. Ja no necessita OpenGL

This commit is contained in:
2016-02-18 18:45:23 +01:00
parent 4a359c46f5
commit ea9d51f78a
15 changed files with 295 additions and 60 deletions

View File

@@ -1,3 +1,11 @@
syntax: glob syntax: glob
recursos/* recursos/*
bin/*
obj/*
Debug/*
*.suo
*.sdf
*.opensdf
*.user
*.dll

22
aee.sln Normal file
View File

@@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aee", "aee.vcxproj", "{CE606303-5AA1-41EF-BB2F-B11540AA5EA1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CE606303-5AA1-41EF-BB2F-B11540AA5EA1}.Debug|Win32.ActiveCfg = Debug|Win32
{CE606303-5AA1-41EF-BB2F-B11540AA5EA1}.Debug|Win32.Build.0 = Debug|Win32
{CE606303-5AA1-41EF-BB2F-B11540AA5EA1}.Release|Win32.ActiveCfg = Release|Win32
{CE606303-5AA1-41EF-BB2F-B11540AA5EA1}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

118
aee.vcxproj Normal file
View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{CE606303-5AA1-41EF-BB2F-B11540AA5EA1}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>aee</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>C:\dev\lib\sdl2\include;$(IncludePath)</IncludePath>
<LibraryPath>C:\dev\lib\sdl2\lib\x86;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="bola.cpp" />
<ClCompile Include="engendro.cpp" />
<ClCompile Include="jdraw8.cpp" />
<ClCompile Include="jfile.cpp" />
<ClCompile Include="jgame.cpp" />
<ClCompile Include="jinput.cpp" />
<ClCompile Include="jsound.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="mapa.cpp" />
<ClCompile Include="marcador.cpp" />
<ClCompile Include="modulegame.cpp" />
<ClCompile Include="modulesequence.cpp" />
<ClCompile Include="momia.cpp" />
<ClCompile Include="prota.cpp" />
<ClCompile Include="sprite.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="bola.h" />
<ClInclude Include="engendro.h" />
<ClInclude Include="info.h" />
<ClInclude Include="jdraw8.h" />
<ClInclude Include="jfile.h" />
<ClInclude Include="jgame.h" />
<ClInclude Include="jinput.h" />
<ClInclude Include="jsound.h" />
<ClInclude Include="mapa.h" />
<ClInclude Include="marcador.h" />
<ClInclude Include="modulegame.h" />
<ClInclude Include="modulesequence.h" />
<ClInclude Include="momia.h" />
<ClInclude Include="prota.h" />
<ClInclude Include="sprite.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

111
aee.vcxproj.filters Normal file
View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="bola.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="engendro.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="jdraw8.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="jfile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="jgame.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="jinput.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="jsound.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mapa.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="marcador.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="modulegame.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="modulesequence.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="momia.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="prota.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="sprite.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="bola.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="engendro.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="info.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="jdraw8.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="jfile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="jgame.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="jinput.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="jsound.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="mapa.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="marcador.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="modulegame.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="modulesequence.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="momia.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="prota.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="sprite.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -1,6 +1,6 @@
#include "jdraw8.h" #include "jdraw8.h"
#include "SDL2/SDL_image.h" #include "SDL_image.h"
#include "SDL2/SDL_opengl.h" //#include "SDL_opengl.h"
#include "jfile.h" #include "jfile.h"
#include <fstream> #include <fstream>
@@ -15,52 +15,29 @@ Uint32 contadorFPS = 0;
Uint32 tempsFPS = SDL_GetTicks(); Uint32 tempsFPS = SDL_GetTicks();
char *fps = (char *)malloc(10); char *fps = (char *)malloc(10);
SDL_GLContext gContext; SDL_Window* sdlWindow = NULL;
SDL_Window* window = NULL; SDL_Renderer* sdlRenderer = NULL;
SDL_Surface* screenSurface = NULL; SDL_Texture* sdlTexture = NULL;
void JD8_Init(char *title) { void JD8_Init(char *title) {
screen = (JD8_Surface)calloc( 1, 64000 ); screen = (JD8_Surface)calloc( 1, 64000 );
main_palette = (JD8_Palette)calloc( 1, 768 ); main_palette = (JD8_Palette)calloc( 1, 768 );
pixel_data = (Uint32*)calloc( 1, 1048576 ); pixel_data = (Uint32*)calloc(1, 320 * 200 * 4); // 1048576 );
//SDL_SetVideoMode( 640, 480, 32, SDL_OPENGL ); sdlWindow = SDL_CreateWindow( title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN );
sdlRenderer = SDL_CreateRenderer(sdlWindow, -1, 0);
window = SDL_CreateWindow( title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN ); SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");
gContext = SDL_GL_CreateContext( window ); SDL_RenderSetLogicalSize(sdlRenderer, 320, 200);
//if( SDL_GL_SetSwapInterval( 1 ) < 0 ) { printf( "Warning: Unable to set VSync! SDL Error: %s\n", SDL_GetError() ); }
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 2 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 1 );
glClearColor( 0, 0, 0, 0 ); sdlTexture = SDL_CreateTexture(sdlRenderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STREAMING, 320, 200);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho( 0, 320, 200, 0, -1, 1 );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glEnable(GL_TEXTURE_2D);
GLuint textureName;
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glGenTextures(1, &textureName);
glBindTexture(GL_TEXTURE_2D, textureName);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 512, 512, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixel_data);
} }
void JD8_Quit() { void JD8_Quit() {
if( screen != NULL ) free( screen ); if( screen != NULL ) free( screen );
if( main_palette != NULL ) free( main_palette ); if( main_palette != NULL ) free( main_palette );
if( pixel_data != NULL ) free( pixel_data ); if( pixel_data != NULL ) free( pixel_data );
SDL_DestroyWindow( window ); SDL_DestroyRenderer(sdlRenderer);
SDL_DestroyWindow( sdlWindow );
} }
void JD8_ClearScreen(Uint8 color) { void JD8_ClearScreen(Uint8 color) {
@@ -179,26 +156,12 @@ void JD8_Flip() {
for( int x = 0; x < 320; x++ ) { for( int x = 0; x < 320; x++ ) {
for( int y = 0; y < 200; y++ ) { for( int y = 0; y < 200; y++ ) {
Uint32 color = 0xFF000000 + main_palette[screen[x + ( y * 320 )]].r + ( main_palette[screen[x + ( y * 320 )]].g << 8 ) + ( main_palette[screen[x + ( y * 320 )]].b << 16 ); Uint32 color = 0xFF000000 + main_palette[screen[x + ( y * 320 )]].r + ( main_palette[screen[x + ( y * 320 )]].g << 8 ) + ( main_palette[screen[x + ( y * 320 )]].b << 16 );
pixel_data[y + ( x * 512 )] = color; pixel_data[x + ( y * 320 )] = color;
} }
} }
glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 512, 512, GL_RGBA, GL_UNSIGNED_BYTE, pixel_data); SDL_UpdateTexture(sdlTexture, NULL, pixel_data, 320 * sizeof(Uint32));
SDL_RenderCopy(sdlRenderer, sdlTexture, NULL, NULL);
glBegin( GL_QUADS ); SDL_RenderPresent(sdlRenderer);
glTexCoord2f( 0.0, 0.0 );
glVertex3f( 0.0, 0.0, 0.0 );
glTexCoord2f( 0.0, 1.0 );
glVertex3f( 512.0, 0.0, 0.0 );
glTexCoord2f( 1.0, 1.0 );
glVertex3f( 512.0, 512.0, 0.0 );
glTexCoord2f( 1.0, 0.0 );
glVertex3f( 0.0, 512.0, 0.0 );
glEnd();
SDL_GL_SwapWindow(window);
} }
void JD8_FreeSurface(JD8_Surface surface) { void JD8_FreeSurface(JD8_Surface surface) {

View File

@@ -1,5 +1,5 @@
#pragma once #pragma once
#include "SDL2/SDL.h" #include "SDL.h"
struct Color { struct Color {
Uint8 r; Uint8 r;

View File

@@ -1,5 +1,5 @@
#include "jfile.h" #include "jfile.h"
#include "SDL2/SDL.h" #include "SDL.h"
#include <fstream> #include <fstream>
#pragma pack(push,1) #pragma pack(push,1)

View File

@@ -1,5 +1,5 @@
#pragma once #pragma once
#include "SDL2/SDL.h" #include "SDL.h"
#ifndef NDEBUG #ifndef NDEBUG
#ifndef DPRINT(text, ...) #ifndef DPRINT(text, ...)

View File

@@ -1,5 +1,6 @@
#include "jinput.h" #include "jinput.h"
#include "jgame.h" #include "jgame.h"
#include <string>
const Uint8 *keystates;// = SDL_GetKeyboardState( NULL ); const Uint8 *keystates;// = SDL_GetKeyboardState( NULL );
SDL_Event event; SDL_Event event;

View File

@@ -1,5 +1,5 @@
#pragma once #pragma once
#include "SDL2/SDL.h" #include "SDL.h"
void JI_Update(); void JI_Update();

View File

@@ -1,5 +1,5 @@
#pragma once #pragma once
#include "SDL2/SDL_mixer.h" #include "SDL_mixer.h"
typedef Mix_Chunk JS_Sound; typedef Mix_Chunk JS_Sound;

View File

@@ -5,16 +5,24 @@
#include "modulegame.h" #include "modulegame.h"
#include "modulesequence.h" #include "modulesequence.h"
#include "time.h" #include "time.h"
#include <string>
#ifndef WIN32
#include <libgen.h> #include <libgen.h>
#endif
int main( int argc, char* args[] ) { int main( int argc, char* args[] ) {
#ifdef WIN32
JF_SetResourceFile("data.jrf");
#else
char res_file[255] = ""; char res_file[255] = "";
strcpy(res_file, dirname(args[0])); strcpy(res_file, dirname(args[0]));
strcat(res_file, "/data.jrf"); strcat(res_file, "/data.jrf");
printf("ARXIU DE RECURSOS: %s\n", res_file); printf("ARXIU DE RECURSOS: %s\n", res_file);
JF_SetResourceFile(res_file); JF_SetResourceFile(res_file);
#endif
srand( time(NULL) ); srand( time(NULL) );
JG_Init(); JG_Init();

View File

@@ -2,6 +2,7 @@
#include "jgame.h" #include "jgame.h"
#include "jinput.h" #include "jinput.h"
#include <stdlib.h>
Mapa::Mapa( JD8_Surface gfx, Info* info, Prota* sam ) { Mapa::Mapa( JD8_Surface gfx, Info* info, Prota* sam ) {

View File

@@ -3,6 +3,8 @@
#include "jgame.h" #include "jgame.h"
#include "jdraw8.h" #include "jdraw8.h"
#include "jinput.h" #include "jinput.h"
#include <stdlib.h>
#include <string>
ModuleSequence::ModuleSequence( Info* info ) { ModuleSequence::ModuleSequence( Info* info ) {
this->info = info; this->info = info;

View File

@@ -1,5 +1,6 @@
#include "momia.h" #include "momia.h"
#include "jgame.h" #include "jgame.h"
#include <stdlib.h>
Momia::Momia( JD8_Surface gfx, Info* info, bool dimoni, Uint16 x, Uint16 y, Prota* sam ) : Sprite( gfx ) { Momia::Momia( JD8_Surface gfx, Info* info, bool dimoni, Uint16 x, Uint16 y, Prota* sam ) : Sprite( gfx ) {
this->info = info; this->info = info;