├── .github └── workflows │ ├── build.yml │ └── cron.yml ├── .gitignore ├── .gitmodules ├── LICENSE.md ├── README.md ├── ci-scripts ├── .gitignore ├── AutoUpdate.sh ├── Build.sh ├── CopyFromAndroid.mjs ├── CopyFromiOS.mjs ├── FetchDxLibVersion.mjs ├── FetchLatestTag.sh ├── ForceReset.sh ├── Package.sh ├── UpdateFromAndroid.sh ├── UpdateFromCommon.sh ├── UpdateFromiOS.sh ├── Util.sh ├── package-lock.json ├── package.json └── test │ ├── DxLib.index.html │ └── FetchDxLibVersion.test.js └── src ├── Borland C++ 版について.txt ├── CMakeLists.txt ├── DxASyncLoad.cpp ├── DxASyncLoad.h ├── DxArchive_.cpp ├── DxArchive_.h ├── DxBaseFunc.cpp ├── DxBaseFunc.h ├── DxBaseImage.cpp ├── DxBaseImage.h ├── DxChar.cpp ├── DxChar.h ├── DxCharCodeTable.cpp ├── DxCompileConfig.h ├── DxDataType.h ├── DxDataTypeAndroid.h ├── DxDataTypeHTML5.h ├── DxDataTypeWin.h ├── DxDataTypeiOS.h ├── DxDrawFuncBorland.bdp ├── DxDrawFuncMake.sln ├── DxDrawFuncMake.vcproj ├── DxFile.cpp ├── DxFile.h ├── DxFont.cpp ├── DxFont.h ├── DxFunctionAndroid.h ├── DxFunctionHTML5.h ├── DxFunctionWin.h ├── DxFunctioniOS.h ├── DxGateway.cpp ├── DxGraphics.cpp ├── DxGraphics.h ├── DxGraphicsFilter.cpp ├── DxGraphicsFilter.h ├── DxHandle.cpp ├── DxHandle.h ├── DxHeap.cpp ├── DxHeap.h ├── DxInput.cpp ├── DxInput.h ├── DxInputString.cpp ├── DxInputString.h ├── DxLib.h ├── DxLib.txt ├── DxLibBorland.bdp ├── DxLibMake.sln ├── DxLibMake.vcxproj ├── DxLibMake.vcxproj.filters ├── DxLibMake.vcxproj.user ├── DxLive2DCubism4.cpp ├── DxLive2DCubism4.h ├── DxLog.cpp ├── DxLog.h ├── DxLog.txt ├── DxMask.cpp ├── DxMask.h ├── DxMath.cpp ├── DxMath.h ├── DxMemImg.cpp ├── DxMemImg.h ├── DxMemImgDrawFunction0.cpp ├── DxMemImgDrawFunction1.cpp ├── DxMemImgDrawFunction2.cpp ├── DxMemImgDrawFunction3.cpp ├── DxMemory.cpp ├── DxMemory.h ├── DxModel.cpp ├── DxModel.h ├── DxModelFile.h ├── DxModelLoader0.cpp ├── DxModelLoader1.cpp ├── DxModelLoader2.cpp ├── DxModelLoader3.cpp ├── DxModelLoader3.h ├── DxModelLoader4.cpp ├── DxModelLoader4.h ├── DxModelLoaderVMD.cpp ├── DxModelLoaderVMD.h ├── DxModelRead.cpp ├── DxModelRead.h ├── DxMovie.cpp ├── DxMovie.h ├── DxNetwork.cpp ├── DxNetwork.h ├── DxRingBuffer.cpp ├── DxRingBuffer.h ├── DxSoftImage.cpp ├── DxSoftImage.h ├── DxSound.cpp ├── DxSound.h ├── DxSoundConvert.cpp ├── DxSoundConvert.h ├── DxStatic.h ├── DxSystem.cpp ├── DxSystem.h ├── DxThread.cpp ├── DxThread.h ├── DxUseCLib スタティックリンクライブラリについて.txt ├── DxUseCLib.cpp ├── DxUseCLib.h ├── DxUseCLibLive2DCubism4.cpp ├── DxUseCLibLive2DCubism4.h ├── DxUseCLibOgg.cpp ├── DxUseCLibOgg.h ├── DxUseCLibPhysics.cpp ├── Empty.cpp ├── HTML5 ├── CMakeLists.txt ├── DxBaseFuncHTML5.cpp ├── DxBaseFuncHTML5.h ├── DxBaseImageHTML5.cpp ├── DxBaseImageHTML5.h ├── DxBrowserFontHTML5.cpp ├── DxBrowserFontHTML5.h ├── DxFileHTML5.cpp ├── DxFileHTML5.h ├── DxFontHTML5.cpp ├── DxFontHTML5.h ├── DxGraphicsFilterHTML5.cpp ├── DxGraphicsFilterHTML5.h ├── DxGraphicsHTML5.cpp ├── DxGraphicsHTML5.h ├── DxInputHTML5.cpp ├── DxInputHTML5.h ├── DxInputKeyCodesHTML5.h ├── DxLive2DCubism4HTML5.cpp ├── DxLive2DCubism4HTML5.h ├── DxLogHTML5.cpp ├── DxLogHTML5.h ├── DxMaskHTML5.cpp ├── DxMaskHTML5.h ├── DxMemoryHTML5.cpp ├── DxMemoryHTML5.h ├── DxModelHTML5.cpp ├── DxModelHTML5.h ├── DxMovieHTML5.cpp ├── DxMovieHTML5.h ├── DxNetworkHTML5.cpp ├── DxNetworkHTML5.h ├── DxShaderCodeBin_Base3D_HTML5.cpp ├── DxShaderCodeBin_Base_HTML5.cpp ├── DxShaderCodeBin_Filter_HTML5.cpp ├── DxShaderCodeBin_Live2D_Cubism4_HTML5.cpp ├── DxShaderCodeBin_Model_HTML5.cpp ├── DxShaderCodeBin_RgbaMix_HTML5.cpp ├── DxShader_Common_HTML5.h ├── DxShader_DataType_HTML5.h ├── DxShader_FS_HTML5.h ├── DxShader_VS_HTML5.h ├── DxSoundConvertHTML5.cpp ├── DxSoundConvertHTML5.h ├── DxSoundHTML5.cpp ├── DxSoundHTML5.h ├── DxSystemHTML5.cpp ├── DxSystemHTML5.h ├── DxThreadHTML5.cpp ├── DxThreadHTML5.h ├── DxUseCLibOggHTML5.cpp ├── DxUseCLibOggHTML5.h ├── DxWindow.cpp └── DxWindow.h └── DXライブラリソースファイル概用.txt /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: C/C++ CI 2 | 3 | on: [ push ] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | container: 9 | image: emscripten/emsdk:3.1.56 10 | steps: 11 | - uses: actions/checkout@v3 12 | with: 13 | submodules: recursive 14 | 15 | - name: Build 16 | run: bash ci-scripts/Build.sh 17 | 18 | - name: Pack 19 | run: bash ci-scripts/Package.sh 20 | 21 | - uses: actions/upload-artifact@v3 22 | with: 23 | name: DxLibHTML5 24 | path: DxLibForHTML5.* 25 | 26 | - name: Create release 27 | if: ${{ contains(github.ref, 'tags/') }} 28 | id: create-release 29 | uses: actions/create-release@v1 30 | env: 31 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 32 | with: 33 | tag_name: ${{ github.ref }} 34 | 35 | - name: Upload Release Asset (zip) 36 | if: ${{ contains(github.ref, 'tags/') }} 37 | uses: actions/upload-release-asset@v1 38 | env: 39 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 40 | with: 41 | upload_url: ${{ steps.create-release.outputs.upload_url }} 42 | asset_path: DxLibForHTML5.zip 43 | asset_name: DxLibForHTML5.zip 44 | asset_content_type: application/zip 45 | 46 | - name: Upload Release Asset (zip) 47 | if: ${{ contains(github.ref, 'tags/') }} 48 | uses: actions/upload-release-asset@v1 49 | env: 50 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 51 | with: 52 | upload_url: ${{ steps.create-release.outputs.upload_url }} 53 | asset_path: DxLibForHTML5.tgz 54 | asset_name: DxLibForHTML5.tgz 55 | asset_content_type: application/zip 56 | -------------------------------------------------------------------------------- /.github/workflows/cron.yml: -------------------------------------------------------------------------------- 1 | name: C/C++ Update 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branch: [ develop ] 7 | paths: 8 | - '.github/workflows/cron.yml' 9 | schedule: 10 | - cron: '0 15 * * 0' 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v3 17 | with: 18 | submodules: recursive 19 | fetch-depth: 0 20 | fetch-tags: true 21 | - env: 22 | LANG: C.UTF-8 23 | run: | 24 | cp -r ci-scripts ci-scripts-temp 25 | cd ci-scripts-temp 26 | node --version 27 | npm install 28 | bash ./AutoUpdate.sh 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ohter OS Files 2 | /Windows/ 3 | /iOS/ 4 | /Android/ 5 | 6 | /Shader/Windows/ 7 | /Shader/iOS/ 8 | /Shader/Android/ 9 | 10 | # Utility 11 | /Tool/ 12 | 13 | #Build Result 14 | /Build/ 15 | /build 16 | /dist 17 | /DxLibHTML5.zip 18 | /DxLibHTML5.tgz 19 | 20 | #VS Config 21 | /.vscode/ 22 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "extlib/vorbis"] 2 | path = extlib/vorbis 3 | url = https://github.com/xiph/vorbis.git 4 | [submodule "extlib/bullet3"] 5 | path = extlib/bullet3 6 | url = https://github.com/bulletphysics/bullet3.git 7 | [submodule "extlib/freetype"] 8 | path = extlib/freetype 9 | url = https://github.com/aseprite/freetype2.git 10 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # DX Library for HTML5 2 | 3 | DX Library for HTML5 (C) 2020-2022 かめのこにょこにょこ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | ## DX Library 25 | 26 | DX Library Copyright (C) 2001-2021 Takumi Yamada. 27 | 28 | ## libjpeg 29 | 30 | libjpeg Copyright (C) 1991-2013, Thomas G. Lane, Guido Vollbeding. 31 | this software is based in part on the work of the Independent JPEG Group 32 | 33 | ## libpng 34 | 35 | libpng Copyright (C) 2004, 2006-2012 Glenn Randers-Pehrson. 36 | zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler. 37 | 38 | ## libtiff 39 | 40 | libtiff Copyright (c) 1988-1997 Sam Leffler 41 | libtiff Copyright (c) 1991-1997 Silicon Graphics, Inc. 42 | 43 | Permission to use, copy, modify, distribute, and sell this software and 44 | its documentation for any purpose is hereby granted without fee, provided 45 | that (i) the above copyright notices and this permission notice appear in 46 | all copies of the software and related documentation, and (ii) the names of 47 | Sam Leffler and Silicon Graphics may not be used in any advertising or 48 | publicity relating to the software without the specific, prior written 49 | permission of Sam Leffler and Silicon Graphics. 50 | 51 | THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 52 | EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 53 | WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 54 | 55 | IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 56 | ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 57 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 58 | WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 59 | LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 60 | OF THIS SOFTWARE. 61 | 62 | ## libogg 63 | 64 | libogg Copyright (C) 2002-2009 Xiph.org Foundation 65 | 66 | Redistribution and use in source and binary forms, with or without 67 | modification, are permitted provided that the following conditions 68 | are met: 69 | 70 | - Redistributions of source code must retain the above copyright 71 | notice, this list of conditions and the following disclaimer. 72 | 73 | - Redistributions in binary form must reproduce the above copyright 74 | notice, this list of conditions and the following disclaimer in the 75 | documentation and/or other materials provided with the distribution. 76 | 77 | - Neither the name of the Xiph.org Foundation nor the names of its 78 | contributors may be used to endorse or promote products derived from 79 | this software without specific prior written permission. 80 | 81 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 82 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 83 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 84 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION 85 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 86 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 87 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 88 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 89 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 90 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 91 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 92 | 93 | ## Opus 94 | 95 | Opus audio codec 96 | Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic, 97 | Jean-Marc Valin, Timothy B. Terriberry, 98 | CSIRO, Gregory Maxwell, Mark Borgerding, 99 | Erik de Castro Lopo 100 | 101 | Redistribution and use in source and binary forms, with or without 102 | modification, are permitted provided that the following conditions 103 | are met: 104 | 105 | - Redistributions of source code must retain the above copyright 106 | notice, this list of conditions and the following disclaimer. 107 | 108 | - Redistributions in binary form must reproduce the above copyright 109 | notice, this list of conditions and the following disclaimer in the 110 | documentation and/or other materials provided with the distribution. 111 | 112 | - Neither the name of Internet Society, IETF or IETF Trust, nor the 113 | names of specific contributors, may be used to endorse or promote 114 | products derived from this software without specific prior written 115 | permission. 116 | 117 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 118 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 119 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 120 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 121 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 122 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 123 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 124 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 125 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 126 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 127 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 128 | 129 | ## OpusFile 130 | 131 | Opusfile 132 | Copyright (c) 1994-2013 Xiph.Org Foundation and contributors 133 | 134 | Redistribution and use in source and binary forms, with or without 135 | modification, are permitted provided that the following conditions 136 | are met: 137 | 138 | - Redistributions of source code must retain the above copyright 139 | notice, this list of conditions and the following disclaimer. 140 | 141 | - Redistributions in binary form must reproduce the above copyright 142 | notice, this list of conditions and the following disclaimer in the 143 | documentation and/or other materials provided with the distribution. 144 | 145 | - Neither the name of the Xiph.Org Foundation nor the names of its 146 | contributors may be used to endorse or promote products derived from 147 | this software without specific prior written permission. 148 | 149 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 150 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 151 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 152 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION 153 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 154 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 155 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 156 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 157 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 158 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 159 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 160 | 161 | ## Mersenne Twister 162 | 163 | Mersenne Twister 164 | Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, 165 | All rights reserved. 166 | 167 | Redistribution and use in source and binary forms, with or without 168 | modification, are permitted provided that the following conditions 169 | are met: 170 | 171 | 1. Redistributions of source code must retain the above copyright 172 | notice, this list of conditions and the following disclaimer. 173 | 174 | 2. Redistributions in binary form must reproduce the above copyright 175 | notice, this list of conditions and the following disclaimer in the 176 | documentation and/or other materials provided with the distribution. 177 | 178 | 3. The name of the author may not be used to endorse or promote products 179 | derived from this software without specific prior written permission. 180 | 181 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 182 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 183 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 184 | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 185 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 186 | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 187 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 188 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 189 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 190 | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 191 | 192 | ## Bullet 193 | 194 | Bullet Copyright (c) 2003-2006 Erwin Coumans. 195 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DxLibForHTML5 2 | 3 | ![Build Status](https://www.travis-ci.com/nokotan/DxLibForHTML5.svg?branch=master) 4 | 5 | ## 概要 6 | 7 | DXライブラリをWebGLで動かしてみたい... 8 | 9 | - iOS, Android版の描画バックエンドが OpenGLES 10 | - iOS のサウンド再生バックエンドが OpenAL 11 | - emscripten には OpenGLES, OpenAL, libpng, libjpeg, zlib, ogg, vorbis, bullet といった DXライブラリで使われている外部ライブラリがすべてそろっている 12 | 13 | はい、emscripten を使ってビルドしてみます 14 | 15 | ## ビルド環境構築 16 | 17 | ### コンパイル済みバイナリのダウンロード 18 | 19 | - [最新版のダウンロード](https://github.com/nokotan/DxLibForHTML5/releases/latest) (Windows, Linux, macOS共通) 20 | 21 | ### 必要条件 22 | 23 | - [emscripten 3.1.20](https://emscripten.org/docs/getting_started/downloads.html) 24 | - [Visual Studio](https://visualstudio.microsoft.com/ja/downloads/) または [Visual Studio Code](https://visualstudio.microsoft.com/ja/downloads/) 25 | 26 | ### 参考資料 27 | 28 | | 開発環境 | リンク | 29 | |:--:|:--:| 30 | | Visual Studio | | 31 | | VSCode | | 32 | 33 | ## ライブラリ本体の手動ビルド 34 | 35 | ### 必要条件 36 | 37 | - emscripten 1.39.6^ 38 | - cmake 39 | - git 40 | - make (nmake, ninjaでも可) 41 | 42 | ### ビルド 43 | 44 | - macOS, Linux 45 | 46 | ```bash 47 | git clone --recursive https://github.com/nokotan/DxLibForHTML5.git 48 | cd DxLibForHTML5 49 | mkdir Build 50 | cd Build 51 | emcmake cmake .. 52 | emmake make 53 | ``` 54 | 55 | - Windows 56 | 57 | nmake を使う場合 58 | 59 | ```bat 60 | git clone --recursive https://github.com/nokotan/DxLibForHTML5.git 61 | cd DxLibForHTML5 62 | mkdir Build 63 | cd Build 64 | emcmake cmake -G "MinGW Makefiles" .. 65 | nmake 66 | ``` 67 | 68 | ninja を使う場合 69 | 70 | ```bat 71 | git clone --recursive https://github.com/nokotan/DxLibForHTML5.git 72 | cd DxLibForHTML5 73 | mkdir Build 74 | cd Build 75 | emcmake cmake -G "ninja" .. 76 | ninja 77 | ``` 78 | -------------------------------------------------------------------------------- /ci-scripts/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /DxLibMake 3 | /DxLibMake.zip -------------------------------------------------------------------------------- /ci-scripts/AutoUpdate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DxLibVersion=$(node ./FetchDxLibVersion.mjs) 4 | export OriginalBranch=original 5 | export DevelopBranch="update_to_${DxLibVersion}" 6 | 7 | export WorkingBranch=work_on_original 8 | 9 | source ./Util.sh 10 | 11 | # 12 | # Support Functions 13 | # 14 | 15 | function git_init_user() { 16 | git config user.name "DxLib Update Bot" 17 | git config user.email "kamenokonokotan@gmail.com" 18 | } 19 | 20 | function download_and_unzip_dxlib() { 21 | info "### download_and_unzip_dxlib" 22 | 23 | local DxLibMakeFileVersion=$(echo ${DxLibVersion} | sed "s/\./_/") 24 | local DxLibMakeUrl="https://dxlib.xsrv.jp/DxLib/DxLibMake${DxLibMakeFileVersion}.zip" 25 | 26 | curl --output DxLibMake.zip ${DxLibMakeUrl} 27 | 28 | if [ $? -ne 0 ]; then 29 | err_exit "Downloading ${DxLibMakeUrl} failed!" 30 | fi 31 | 32 | rm -r DxLibMake || true 33 | unzip -O sjis DxLibMake.zip 34 | 35 | info "### download_and_unzip_dxlib done" 36 | } 37 | 38 | # 39 | # Functions in Main Logic 40 | # 41 | 42 | function do_init() { 43 | git_init_user 44 | 45 | git switch original 46 | git switch develop 47 | git branch -c ${OriginalBranch} ${WorkingBranch} 48 | git branch -c develop ${DevelopBranch} 49 | } 50 | 51 | function check_update_required() { 52 | local GitHubVersion=$(bash ./FetchLatestTag.sh) 53 | 54 | if [ $? -ne 0 ]; then 55 | err_exit "FetchLatestTag.sh failed!" 56 | fi 57 | 58 | warn "DxLibVersion: ${DxLibVersion}, GitHubVersion: ${GitHubVersion}" 59 | 60 | if [ ${DxLibVersion} == ${GitHubVersion} ]; then 61 | warn "No need to update. Exit." 62 | return 1 63 | fi 64 | 65 | return 0 66 | } 67 | 68 | function do_update() { 69 | download_and_unzip_dxlib 70 | 71 | source ./UpdateFromCommon.sh 72 | source ./UpdateFromAndroid.sh 73 | source ./UpdateFromiOS.sh 74 | } 75 | 76 | function post_update() { 77 | git push origin ${OriginalBranch} 78 | git push -u origin ${DevelopBranch} 79 | } 80 | 81 | 82 | 83 | # 84 | # Main Logic 85 | # 86 | 87 | if check_update_required; then 88 | do_init 89 | do_update 90 | post_update 91 | fi 92 | -------------------------------------------------------------------------------- /ci-scripts/Build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "# Create Build Folder" 4 | 5 | mkdir build 6 | cd build 7 | 8 | echo "# Start Building" 9 | 10 | emcmake cmake ../src -DCMAKE_CXX_FLAGS="-O2 -mreference-types" 11 | emmake make -j4 12 | -------------------------------------------------------------------------------- /ci-scripts/CopyFromAndroid.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import { promisify } from "util"; 4 | import { readFile, writeFile } from "fs"; 5 | import iconv from 'iconv-lite'; 6 | 7 | const { decode } = iconv; 8 | const writeFileAsync = promisify(writeFile); 9 | const readFileAsync = promisify(readFile); 10 | 11 | const FilesFromAndroid = [ 12 | "DxBaseFuncHTML5.cpp", 13 | "DxBaseFuncHTML5.h", 14 | "DxBaseImageHTML5.cpp", 15 | "DxBaseImageHTML5.h", 16 | "DxFileHTML5.cpp", 17 | "DxFileHTML5.h", 18 | "DxFontHTML5.cpp", 19 | "DxFontHTML5.h", 20 | "DxInputHTML5.cpp", 21 | "DxInputHTML5.h", 22 | "DxLive2DCubism4HTML5.cpp", 23 | "DxLive2DCubism4HTML5.h", 24 | "DxLogHTML5.cpp", 25 | "DxLogHTML5.h", 26 | "DxMemoryHTML5.cpp", 27 | "DxMemoryHTML5.h", 28 | "DxNetworkHTML5.cpp", 29 | "DxNetworkHTML5.h", 30 | "DxThreadHTML5.cpp", 31 | "DxThreadHTML5.h", 32 | "DxUseCLibOggHTML5.cpp", 33 | "DxUseCLibOggHTML5.h", 34 | ]; 35 | 36 | async function Main() 37 | { 38 | let promises = []; 39 | 40 | for (const fileName of FilesFromAndroid) 41 | { 42 | const baseName = fileName.replace("HTML5", "Android"); 43 | promises.push((async () => { 44 | const fileData = await readFileAsync(`../src/Android/${baseName}`); 45 | const fileText = decode(fileData, "Shift_JIS"); 46 | 47 | let replacedText = fileText.replace(/ANDROID/g, "HTML5"); 48 | replacedText = replacedText.replace(/ANDR/g, "HTML5"); 49 | replacedText = replacedText.replace(/Android/g, "HTML5"); 50 | 51 | await writeFileAsync(`../src/HTML5/${fileName}`, replacedText); 52 | })()); 53 | } 54 | 55 | await Promise.all(promises); 56 | } 57 | 58 | Main(); -------------------------------------------------------------------------------- /ci-scripts/CopyFromiOS.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import { promisify } from "util"; 4 | import { readFile, writeFile } from "fs"; 5 | import iconv from 'iconv-lite'; 6 | 7 | const { decode } = iconv; 8 | const writeFileAsync = promisify(writeFile); 9 | const readFileAsync = promisify(readFile); 10 | 11 | const FilesFromiOS = [ 12 | "DxGraphicsFilterHTML5.cpp", 13 | "DxGraphicsFilterHTML5.h", 14 | "DxGraphicsHTML5.cpp", 15 | "DxGraphicsHTML5.h", 16 | "DxMaskHTML5.cpp", 17 | "DxMaskHTML5.h", 18 | "DxModelHTML5.cpp", 19 | "DxModelHTML5.h", 20 | "DxMovieHTML5.cpp", 21 | "DxMovieHTML5.h", 22 | "DxShaderCodeBin_Base3D_HTML5.cpp", 23 | "DxShaderCodeBin_Base_HTML5.cpp", 24 | "DxShaderCodeBin_Filter_HTML5.cpp", 25 | "DxShaderCodeBin_Live2D_Cubism4_HTML5.cpp", 26 | "DxShaderCodeBin_Model_HTML5.cpp", 27 | "DxShaderCodeBin_RgbaMix_HTML5.cpp", 28 | "DxShader_Common_HTML5.h", 29 | "DxShader_DataType_HTML5.h", 30 | "DxShader_FS_HTML5.h", 31 | "DxShader_VS_HTML5.h", 32 | "DxSoundConvertHTML5.cpp", 33 | "DxSoundConvertHTML5.h", 34 | "DxSoundHTML5.cpp", 35 | "DxSoundHTML5.h", 36 | "DxSystemHTML5.cpp", 37 | "DxSystemHTML5.h" 38 | ]; 39 | 40 | async function Main() 41 | { 42 | let promises = []; 43 | 44 | for (const fileName of FilesFromiOS) 45 | { 46 | const baseName = fileName.replace("HTML5", "iOS"); 47 | 48 | promises.push((async () => { 49 | const fileData = await readFileAsync(`../src/iOS/${baseName}`); 50 | const fileText = decode(fileData, "utf8"); 51 | 52 | let replacedText = fileText.replace(/iOS/g, "HTML5"); 53 | replacedText = replacedText.replace(/IOS/g, "HTML5"); 54 | replacedText = replacedText.replace(/ANDR/g, "HTML5"); 55 | 56 | await writeFileAsync(`../src/HTML5/${fileName}`, replacedText); 57 | })()); 58 | } 59 | 60 | await Promise.all(promises); 61 | } 62 | 63 | Main(); -------------------------------------------------------------------------------- /ci-scripts/FetchDxLibVersion.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import { JSDOM } from "jsdom"; 4 | 5 | /** 6 | * @returns {string} 7 | */ 8 | export async function FetchVersion() 9 | { 10 | const dxlibRawPage = await fetch("https://dxlib.xsrv.jp").then(res => res.text()); 11 | const dxlibPage = new JSDOM(dxlibRawPage); 12 | const dxlibPageFirstTd = dxlibPage.window.document.body.querySelector("td"); 13 | 14 | const versionRegex = /(? 2 | 3 | 4 | 5 | DXライブラリ置き場 HOME 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 19 | 20 | 27 | 28 | 31 | 32 | 39 | 40 | 43 | 44 | 50 | 51 | 52 | 55 | 56 | 62 | 63 | 64 | 102 | 103 | 152 | 153 | 164 |
Since 2001.5.1  Last Up 2023.4.23  ライブラリバージョン 3.24b
14 |
15 | DXライブラリ置き場
16 | DXライブラリロゴ 17 |


18 |
21 |
22 | Nintendo Switch ロゴ PlayStation4 PlayStation Vita ロゴ

23 | DXライブラリが Nintendo Switch™、 PlayStation®4、 PlayStation®Vita に対応しました
24 | PlayStation®4、 PlayStation®Vita 対応についての詳細についてはこちらをご覧ください
25 | Nintendo Switch™ 対応についての詳細についてはこちらをご覧ください


26 |
29 | DXライブラリ Windows版の説明

30 |
33 |  DXライブラリ Windows版は、DirectXを使ったWindowsデスクトップアプリの開発必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。(使用する際はC言語の知識だけで大丈夫です)
34 |  これによってプログラマーはゲームの本質的なプログラムに専念することが出来ます。かなり本格的なソフト制作からお遊び程度のミニゲーム制作まで幅広くカバーしています!

35 | 36 |  プログラムソースも公開していますので気兼ねなく使用してください。


37 | 38 |
41 | DXライブラリ Android版の説明

42 |
45 |  DXライブラリ Android版は、OpenGL ES を使ったAndroidアプリの開発必ず付いて回るOpenGL ES やAndroid関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。(使用する際はC言語の知識だけで大丈夫です、なお Java版はありません)
46 |  これによってプログラマーはゲームの本質的なプログラムに専念することが出来ます。かなり本格的なソフト制作からお遊び程度のミニゲーム制作まで幅広くカバーしています!

47 |  なお、文字コードの違いを除いてDXライブラリ Windows版と同じ感覚で Androidアプリが開発できますので、Windows用に開発したソフトの移植もある程度容易に行うことができます。


48 | 49 |
53 | DXライブラリ iOS版の説明

54 |
57 |  DXライブラリ iOS版は、OpenGL ES を使ったiOSアプリの開発必ず付いて回るOpenGL ES やiOS関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。(使用する際はC言語の知識だけで大丈夫です)
58 |  これによってプログラマーはゲームの本質的なプログラムに専念することが出来ます。かなり本格的なソフト制作からお遊び程度のミニゲーム制作まで幅広くカバーしています!

59 |  なお、文字コードの違いを除いてDXライブラリ Windows版と同じ感覚で iOSアプリが開発できますので、Windows用に開発したソフトの移植もある程度容易に行うことができます。


60 | 61 |
65 |

66 | 67 | DXライブラリのダウンロード

68 | 69 | DXライブラリ更新履歴
70 | ( DXライブラリの脆弱性情報 )

71 | 72 | DXライブラリHP更新履歴


73 | 74 | DXライブラリの仕様と特徴

75 | 76 | DXライブラリの使い方


77 | 78 | DXライブラリの関数リファレンスマニュアル

各関数のサンプルプログラム


79 | DXライブラリミニテクニック

80 | DXライブラリサンプルプログラム

81 | DXライブラリゲームプログラム開発講座

82 | DXライブラリサンプルゲームのダウンロード


83 | 84 | 85 | 『皆様の作品紹介!』投稿&閲覧ページ
86 | DXライブラリを使用していただいた「作品の紹介」を投稿したり
( 作品ファイル自体は投稿できない )
投稿していただいた作品(の、紹介)を閲覧したりというページです。

87 | <一番新しい作品のスクリーンショット>
88 | 89 |



90 | 91 | 掲示板
92 | 93 | 雑談&質問掲示板(日付順表示)
94 |  雑談風書き込みに適した掲示板です。

95 |   96 | DXライブラリプログラム&プログラム質問掲示板(スレッド表示)
97 |  スレッド表示の質問・回答に適した掲示板です。


98 |
99 | リンク

100 | 101 |
154 |
155 | 156 |
157 |

158 | 管理人のメールアドレス
159 | メールアドレス 160 |


161 | Nintendo Switch は任天堂の商標です。
162 | 163 |
165 |
166 | 167 | 168 | -------------------------------------------------------------------------------- /ci-scripts/test/FetchDxLibVersion.test.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | 4 | jest.mock('node-fetch'); 5 | 6 | const fetch = require("node-fetch"); 7 | const { Response } = jest.requireActual('node-fetch'); 8 | 9 | function createMockReturnValue() { 10 | return Promise.resolve( 11 | new Response( 12 | fs.readFileSync( 13 | path.resolve(__dirname, "DxLib.index.html") 14 | ) 15 | ) 16 | ); 17 | } 18 | 19 | fetch.mockReturnValue(createMockReturnValue()); 20 | 21 | test("should get DxLib version", async () => { 22 | const FetchDxLibVersion = require("../FetchDxLibVersion"); 23 | fetch.mockReturnValue(createMockReturnValue()); 24 | 25 | const version = await FetchDxLibVersion.FetchVersion(); 26 | expect(version).toBe("3.24b"); 27 | }); 28 | -------------------------------------------------------------------------------- /src/Borland C++ 版について.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/Borland C++ 版について.txt -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.13) 2 | 3 | project(DxLibForHTML5) 4 | 5 | # Library Configuration 6 | 7 | option(DXLIB_BUILD_SHARED_MAIN "Build plugin-style DxLib application loader." OFF) 8 | 9 | 10 | 11 | # Library Declaration 12 | 13 | add_library(DxLib STATIC) 14 | add_library(DxDrawFunc STATIC) 15 | add_library(DxUseCLib STATIC) 16 | 17 | 18 | 19 | # SubDirectories 20 | 21 | add_subdirectory(HTML5) 22 | 23 | 24 | 25 | # DxLib 26 | 27 | target_include_directories(DxLib 28 | PRIVATE 29 | HTML5/ 30 | ../extlib/freetype/include/ 31 | ) 32 | 33 | target_sources(DxLib 34 | PRIVATE 35 | DxArchive_.cpp 36 | DxASyncLoad.cpp 37 | DxBaseFunc.cpp 38 | DxBaseImage.cpp 39 | DxChar.cpp 40 | DxCharCodeTable.cpp 41 | DxFile.cpp 42 | DxFont.cpp 43 | DxGateway.cpp 44 | DxGraphics.cpp 45 | DxGraphicsFilter.cpp 46 | DxHandle.cpp 47 | DxHeap.cpp 48 | DxInput.cpp 49 | DxInputString.cpp 50 | DxLive2DCubism4.cpp 51 | DxLog.cpp 52 | DxMask.cpp 53 | DxMath.cpp 54 | DxMemImg.cpp 55 | DxMemory.cpp 56 | DxModel.cpp 57 | DxModelLoader0.cpp 58 | DxModelLoader1.cpp 59 | DxModelLoader2.cpp 60 | DxModelLoader3.cpp 61 | DxModelLoader4.cpp 62 | DxModelLoaderVMD.cpp 63 | DxModelRead.cpp 64 | DxMovie.cpp 65 | DxNetwork.cpp 66 | DxRingBuffer.cpp 67 | DxSoftImage.cpp 68 | DxSound.cpp 69 | DxSoundConvert.cpp 70 | DxSystem.cpp 71 | DxThread.cpp 72 | ) 73 | 74 | target_compile_definitions(DxLib 75 | PRIVATE 76 | PROXY_TO_PTHREAD 77 | ) 78 | 79 | set_target_properties(DxLib 80 | PROPERTIES 81 | COMPILE_FLAGS "-sUSE_FREETYPE=1 -pthread -fwasm-exceptions" 82 | CXX_STANDARD 11 83 | ) 84 | 85 | 86 | 87 | # DxDrawFunc 88 | 89 | target_sources(DxDrawFunc 90 | PRIVATE 91 | DxMemImgDrawFunction0.cpp 92 | DxMemImgDrawFunction1.cpp 93 | DxMemImgDrawFunction2.cpp 94 | DxMemImgDrawFunction3.cpp 95 | ) 96 | 97 | set_target_properties(DxDrawFunc 98 | PROPERTIES 99 | COMPILE_FLAGS "-pthread -fwasm-exceptions" 100 | CXX_STANDARD 11 101 | ) 102 | 103 | 104 | 105 | # DxUseCLib 106 | 107 | target_include_directories(DxUseCLib 108 | PRIVATE 109 | ../extlib/vorbis/lib/ 110 | ../extlib/bullet3/src/ 111 | ) 112 | 113 | target_sources(DxUseCLib 114 | PRIVATE 115 | DxUseCLib.cpp 116 | DxUseCLibLive2DCubism4.cpp 117 | DxUseCLibOgg.cpp 118 | DxUseCLibPhysics.cpp 119 | ) 120 | 121 | set_target_properties(DxUseCLib 122 | PROPERTIES 123 | COMPILE_FLAGS "-sUSE_OGG=1 -sUSE_VORBIS=1 -sUSE_LIBPNG=1 -sUSE_LIBJPEG=1 -sUSE_ZLIB=1 -sUSE_BULLET=1 -pthread -fwasm-exceptions" 124 | CXX_STANDARD 11 125 | ) 126 | 127 | 128 | 129 | # DxLibSharedMain 130 | 131 | add_executable(DxLibSharedMain EXCLUDE_FROM_ALL 132 | Empty.cpp 133 | ) 134 | 135 | target_link_libraries(DxLibSharedMain 136 | DxLib 137 | DxDrawFunc 138 | DxUseCLib 139 | ) 140 | 141 | set_target_properties(DxLibSharedMain 142 | PROPERTIES 143 | COMPILE_FLAGS "-s USE_FREETYPE=1 -s MAIN_MODULE=1" 144 | LINK_FLAGS "-sERROR_ON_UNDEFINED_SYMBOLS=0 -sUSE_FREETYPE=1 -sUSE_BULLET=1 -sUSE_VORBIS=1 -sUSE_OGG=1 -sUSE_LIBPNG=1 -sUSE_ZLIB=1 -sFULL_ES2=1 -sALLOW_MEMORY_GROWTH=1 -sMAIN_MODULE=1 -sDECLARE_ASM_MODULE_EXPORTS=0" 145 | CXX_STANDARD 11 146 | ) 147 | 148 | 149 | 150 | if (DXLIB_BUILD_SHARED_MAIN) 151 | target_compile_options(DxLib 152 | PRIVATE 153 | "-sSIDE_MODULE=1" 154 | ) 155 | 156 | target_compile_options(DxDrawFunc 157 | PRIVATE 158 | "-sSIDE_MODULE=1" 159 | ) 160 | 161 | target_compile_options(DxUseCLib 162 | PRIVATE 163 | "-sSIDE_MODULE=1" 164 | ) 165 | 166 | set_target_properties(DxLibSharedMain 167 | PROPERTIES 168 | EXCLUDE_FROM_ALL OFF 169 | ) 170 | endif() 171 | 172 | 173 | 174 | include(GNUInstallDirs) 175 | 176 | if ("${CMAKE_CXX_FLAGS}" MATCHES "-flto") 177 | set(LIBDIR "${CMAKE_INSTALL_LIBDIR}/wasm32-emscripten/lto") 178 | else() 179 | set(LIBDIR "${CMAKE_INSTALL_LIBDIR}/wasm32-emscripten") 180 | endif() 181 | 182 | install(TARGETS DxLib 183 | EXPORT DxLibExport 184 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 185 | LIBRARY DESTINATION ${LIBDIR} 186 | ARCHIVE DESTINATION ${LIBDIR} 187 | ) 188 | 189 | install(EXPORT DxLibExport 190 | FILE DxLibConfig.cmake 191 | DESTINATION share/cmake/DxLibConfig/ 192 | ) 193 | 194 | install(TARGETS DxDrawFunc 195 | EXPORT DxDrawFuncExport 196 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 197 | LIBRARY DESTINATION ${LIBDIR} 198 | ARCHIVE DESTINATION ${LIBDIR} 199 | ) 200 | 201 | install(EXPORT DxDrawFuncExport 202 | FILE DxDrawFuncConfig.cmake 203 | DESTINATION share/cmake/DxDrawFuncConfig/ 204 | ) 205 | 206 | install(TARGETS DxUseCLib 207 | EXPORT DxUseCLibExport 208 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 209 | LIBRARY DESTINATION ${LIBDIR} 210 | ARCHIVE DESTINATION ${LIBDIR} 211 | ) 212 | 213 | install(EXPORT DxUseCLibExport 214 | FILE DxUseCLibConfig.cmake 215 | DESTINATION share/cmake/DxUseCLibConfig/ 216 | ) 217 | 218 | install( 219 | FILES 220 | ${PROJECT_SOURCE_DIR}/DxLib.h 221 | ${PROJECT_SOURCE_DIR}/DxCompileConfig.h 222 | ${PROJECT_SOURCE_DIR}/DxDataType.h 223 | ${PROJECT_SOURCE_DIR}/DxDataTypeHTML5.h 224 | ${PROJECT_SOURCE_DIR}/DxFunctionHTML5.h 225 | DESTINATION 226 | ${CMAKE_INSTALL_INCLUDEDIR} 227 | ) 228 | -------------------------------------------------------------------------------- /src/DxASyncLoad.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxASyncLoad.cpp -------------------------------------------------------------------------------- /src/DxASyncLoad.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxASyncLoad.h -------------------------------------------------------------------------------- /src/DxArchive_.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxArchive_.cpp -------------------------------------------------------------------------------- /src/DxArchive_.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxArchive_.h -------------------------------------------------------------------------------- /src/DxBaseFunc.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxBaseFunc.cpp -------------------------------------------------------------------------------- /src/DxBaseFunc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxBaseFunc.h -------------------------------------------------------------------------------- /src/DxBaseImage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxBaseImage.cpp -------------------------------------------------------------------------------- /src/DxBaseImage.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxBaseImage.h -------------------------------------------------------------------------------- /src/DxChar.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxChar.cpp -------------------------------------------------------------------------------- /src/DxChar.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxChar.h -------------------------------------------------------------------------------- /src/DxCharCodeTable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxCharCodeTable.cpp -------------------------------------------------------------------------------- /src/DxCompileConfig.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxCompileConfig.h -------------------------------------------------------------------------------- /src/DxDataType.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxDataType.h -------------------------------------------------------------------------------- /src/DxDataTypeAndroid.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxDataTypeAndroid.h -------------------------------------------------------------------------------- /src/DxDataTypeHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用データタイプ定義ヘッダファイル 4 | // 5 | // Ver 3.22a 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_DATATYPENSW_H 10 | #define DX_DATATYPENSW_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "DxCompileConfig.h" 14 | #include 15 | 16 | // #ifndef DX_NON_NAMESPACE 17 | // 18 | // namespace DxLib 19 | // { 20 | // 21 | // #endif // DX_NON_NAMESPACE 22 | 23 | // マクロ定義 -------------------------------------------------------------------- 24 | 25 | // センサー 26 | #define DX_HTML5_SENSOR_ACCELEROMETER (0) // 加速度センサー 27 | #define DX_HTML5_SENSOR_MAGNETIC_FIELD (1) // 磁界センサー 28 | #define DX_HTML5_SENSOR_GYROSCOPE (2) // ジャイロスコープセンサー 29 | #define DX_HTML5_SENSOR_LIGHT (3) // 照度センサー 30 | #define DX_HTML5_SENSOR_PROXIMITY (4) // 近接センサー 31 | #define DX_HTML5_SENSOR_PRESSURE (5) // 加圧センサー 32 | #define DX_HTML5_SENSOR_AMBIENT_TEMPERATURE (6) // 温度センサー 33 | #define DX_HTML5_SENSOR_NUM (7) 34 | 35 | // 環境依存キーワードなど 36 | #ifndef FASTCALL 37 | #define FASTCALL 38 | #endif 39 | 40 | typedef void * HBITMAP ; 41 | typedef void * HINSTANCE ; 42 | typedef char * LPSTR ; 43 | 44 | #ifndef TRUE 45 | #define TRUE (1) 46 | #endif 47 | 48 | #ifndef FALSE 49 | #define FALSE (0) 50 | #endif 51 | 52 | #ifndef BOOL 53 | #define BOOL int 54 | #endif 55 | 56 | #ifndef TCHAR 57 | #ifdef UNICODE 58 | #define TCHAR wchar_t 59 | #else 60 | #define TCHAR char 61 | #endif 62 | #endif 63 | 64 | #ifndef _T 65 | #ifdef UNICODE 66 | #define _T( x ) L ## x 67 | #else 68 | #define _T( x ) x 69 | #endif 70 | #endif 71 | 72 | #ifndef TEXT 73 | #ifdef UNICODE 74 | #define TEXT( x ) L ## x 75 | #else 76 | #define TEXT( x ) x 77 | #endif 78 | #endif 79 | 80 | #ifndef NEAR 81 | #define NEAR 82 | #endif 83 | 84 | #ifndef FAR 85 | #define FAR 86 | #endif 87 | 88 | #ifndef WINAPI 89 | #define WINAPI 90 | #endif 91 | 92 | #ifndef LONG 93 | #define LONG int 94 | #endif 95 | 96 | typedef int * LPLONG ; 97 | 98 | #ifndef LONGLONG 99 | #define LONGLONG int64_t 100 | #endif 101 | 102 | #ifndef ULONGLONG 103 | #define ULONGLONG uint64_t 104 | #endif 105 | 106 | #ifndef BYTE 107 | #define BYTE uint8_t 108 | #endif 109 | 110 | #ifndef WORD 111 | #define WORD uint16_t 112 | #endif 113 | 114 | #ifndef DWORD 115 | #define DWORD uint32_t 116 | #endif 117 | 118 | typedef uint32_t * LPDWORD ; 119 | 120 | #ifndef DWORD_PTR 121 | #ifdef __LP64__ 122 | #define DWORD_PTR uint64_t 123 | #else 124 | #define DWORD_PTR uint32_t 125 | #endif 126 | #endif 127 | 128 | #ifndef LONG_PTR 129 | #define LONG_PTR int32_t 130 | #endif 131 | 132 | #define _FPCLASS_SNAN 0x0001 133 | #define _FPCLASS_QNAN 0x0002 134 | #define _FPCLASS_NINF 0x0004 135 | #define _FPCLASS_NN 0x0008 136 | #define _FPCLASS_ND 0x0010 137 | #define _FPCLASS_NZ 0x0020 138 | #define _FPCLASS_PZ 0x0040 139 | #define _FPCLASS_PD 0x0080 140 | #define _FPCLASS_PN 0x0100 141 | #define _FPCLASS_PINF 0x0200 142 | 143 | #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 144 | 145 | #define BI_RGB 0L 146 | #define BI_RLE8 1L 147 | #define BI_RLE4 2L 148 | #define BI_BITFIELDS 3L 149 | 150 | #define MAKEFOURCC( ch0, ch1, ch2, ch3 ) \ 151 | ( ( DWORD )( BYTE )( ch0 ) | ( ( DWORD )( BYTE )( ch1 ) << 8 ) | \ 152 | ( ( DWORD )( BYTE )( ch2 ) << 16) | ( ( DWORD )( BYTE )( ch3 ) << 24 ) ) 153 | 154 | 155 | #define DX_READSOUNDFUNCTION_AT9 (1 << ( DX_READSOUNDFUNCTION_DEFAULT_NUM + 0 )) // ATRAC9 を使用した読み込み処理 156 | 157 | // 構造体定義 -------------------------------------------------------------------- 158 | 159 | typedef struct tagRECT 160 | { 161 | LONG left ; 162 | LONG top ; 163 | LONG right ; 164 | LONG bottom ; 165 | } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT ; 166 | 167 | typedef struct tagPOINT 168 | { 169 | LONG x ; 170 | LONG y ; 171 | } POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT ; 172 | 173 | 174 | typedef struct tagSIZE 175 | { 176 | LONG cx ; 177 | LONG cy ; 178 | } SIZE, *PSIZE, *LPSIZE ; 179 | 180 | #pragma pack(push, 2) 181 | typedef struct tagBITMAPFILEHEADER 182 | { 183 | WORD bfType ; 184 | DWORD bfSize ; 185 | WORD bfReserved1 ; 186 | WORD bfReserved2 ; 187 | DWORD bfOffBits ; 188 | } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER ; 189 | #pragma pack(pop) 190 | 191 | typedef struct tagRGBQUAD 192 | { 193 | BYTE rgbBlue ; 194 | BYTE rgbGreen ; 195 | BYTE rgbRed ; 196 | BYTE rgbReserved ; 197 | } RGBQUAD ; 198 | 199 | typedef struct tagBITMAPINFOHEADER 200 | { 201 | DWORD biSize ; 202 | LONG biWidth ; 203 | LONG biHeight ; 204 | WORD biPlanes ; 205 | WORD biBitCount ; 206 | DWORD biCompression ; 207 | DWORD biSizeImage ; 208 | LONG biXPelsPerMeter ; 209 | LONG biYPelsPerMeter ; 210 | DWORD biClrUsed ; 211 | DWORD biClrImportant ; 212 | } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER ; 213 | 214 | typedef struct tagBITMAPINFO 215 | { 216 | BITMAPINFOHEADER bmiHeader ; 217 | RGBQUAD bmiColors[ 1 ] ; 218 | } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO ; 219 | 220 | // テーブル----------------------------------------------------------------------- 221 | 222 | // 内部大域変数宣言 -------------------------------------------------------------- 223 | 224 | // 関数プロトタイプ宣言----------------------------------------------------------- 225 | 226 | // #ifndef DX_NON_NAMESPACE 227 | // 228 | // } 229 | // 230 | // #endif // DX_NON_NAMESPACE 231 | 232 | #endif // DX_DATATYPENSW_H 233 | -------------------------------------------------------------------------------- /src/DxDataTypeWin.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxDataTypeWin.h -------------------------------------------------------------------------------- /src/DxDataTypeiOS.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxDataTypeiOS.h -------------------------------------------------------------------------------- /src/DxDrawFuncBorland.bdp: -------------------------------------------------------------------------------- 1 | [Project] 2 | Version=1.2.18 3 | Count=4 4 | Filename1=DxMemImgDrawFunction0.cpp,1,DxDrawFuncBorland.bdp,1,DxMemImgDrawFunction0.cpp 5 | Filename2=DxMemImgDrawFunction1.cpp,1,DxDrawFuncBorland.bdp,1,DxMemImgDrawFunction1.cpp 6 | Filename3=DxMemImgDrawFunction2.cpp,1,DxDrawFuncBorland.bdp,1,DxMemImgDrawFunction2.cpp 7 | Filename4=DxMemImgDrawFunction3.cpp,1,DxDrawFuncBorland.bdp,1,DxMemImgDrawFunction3.cpp 8 | 9 | [Compile] 10 | ResourceName= 11 | RunParam= 12 | Count=2 13 | Current=2 14 | 15 | [Compile1] 16 | DefName=Debug 17 | ExeName=DxDrawFunc.lib 18 | MakeName=DxDrawFunc.mak 19 | NoMakefile=0 20 | UseMakefileEx=0 21 | Target=-L 22 | TargetSub= 23 | InstructionSet=-3 24 | Optimize=-Od 25 | Warnning=-w- 26 | Debug=-v -y 27 | Compiler=-k -b 28 | PreHeader=-H- 29 | Call=-pc 30 | Language=-AT 31 | Option=-Tkh32767 32 | IncludePath= 33 | LibraryFile= 34 | Define=DEBUG;sqrtf=(float)sqrt;tanf=(float)tan;cosf=(float)cos;sinf=(float)sin;atanf=(float)atan;asinf=(float)asin;acosf=(float)acos;__BCC 35 | ResIncludePath= 36 | OutputDir=Debug 37 | MakeBefore= 38 | MakeAfter= 39 | 40 | [Compile2] 41 | DefName=Release 42 | ExeName=DxDrawFunc.lib 43 | MakeName=DxLibBorland.mak 44 | NoMakefile=0 45 | UseMakefileEx=0 46 | Target=-L 47 | TargetSub= 48 | InstructionSet=-5 49 | Optimize=-O2 50 | Warnning=-w- 51 | Debug= 52 | Compiler=-k -b 53 | PreHeader=-H- 54 | Call=-pc 55 | Language=-AT 56 | Option=-Tkh32767 57 | IncludePath= 58 | LibraryFile= 59 | Define=sqrtf=(float)sqrt;cosf=(float)cos;sinf=(float)sin;tanf=(float)tan;asinf=(float)asin;acosf=(float)acos;atanf=(float)atan;__BCC 60 | ResIncludePath= 61 | OutputDir=Release 62 | MakeBefore= 63 | MakeAfter= 64 | 65 | [OpenFiles] 66 | FileCount=0 67 | ActivePageIndex=-1 68 | 69 | -------------------------------------------------------------------------------- /src/DxDrawFuncMake.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual Studio 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DxDrawFunc", "DxDrawFuncMake.vcproj", "{E2A60781-CF20-400E-BB35-9B9557B66549}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {E2A60781-CF20-400E-BB35-9B9557B66549}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {E2A60781-CF20-400E-BB35-9B9557B66549}.Debug|Win32.Build.0 = Debug|Win32 13 | {E2A60781-CF20-400E-BB35-9B9557B66549}.Release|Win32.ActiveCfg = Release|Win32 14 | {E2A60781-CF20-400E-BB35-9B9557B66549}.Release|Win32.Build.0 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | EndGlobal 20 | -------------------------------------------------------------------------------- /src/DxDrawFuncMake.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxDrawFuncMake.vcproj -------------------------------------------------------------------------------- /src/DxFile.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxFile.cpp -------------------------------------------------------------------------------- /src/DxFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxFile.h -------------------------------------------------------------------------------- /src/DxFont.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxFont.cpp -------------------------------------------------------------------------------- /src/DxFont.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxFont.h -------------------------------------------------------------------------------- /src/DxFunctionAndroid.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxFunctionAndroid.h -------------------------------------------------------------------------------- /src/DxFunctionHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ iOS専用関数プロトタイプ宣言用ヘッダファイル 4 | // 5 | // Ver 3.23 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_FUNCTIONIOS_H 10 | #define DX_FUNCTIONIOS_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "DxLib.h" 14 | 15 | #ifndef DX_NON_NAMESPACE 16 | 17 | namespace DxLib 18 | { 19 | 20 | #endif // DX_NON_NAMESPACE 21 | 22 | extern int LoadImageFromBrowser(STREAMDATA *Src, BASEIMAGE *BaseImage, int GetFormatOnly); 23 | 24 | #ifndef DX_NON_NAMESPACE 25 | 26 | } 27 | 28 | #endif // DX_NON_NAMESPACE 29 | 30 | #endif // DX_FUNCTIONIOS_H 31 | 32 | -------------------------------------------------------------------------------- /src/DxFunctionWin.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxFunctionWin.h -------------------------------------------------------------------------------- /src/DxFunctioniOS.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ iOS専用関数プロトタイプ宣言用ヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_FUNCTIONIOS_H 10 | #define DX_FUNCTIONIOS_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "DxLib.h" 14 | 15 | #ifndef DX_NON_NAMESPACE 16 | 17 | namespace DxLib 18 | { 19 | 20 | #endif // DX_NON_NAMESPACE 21 | 22 | // マクロ定義--------------------------------------------------------------------- 23 | 24 | // 振動の種類 25 | #define IOS_VIBRATE_ONE_STRONG_LONG (4095) 26 | #define IOS_VIBRATE_TWO_STRONG_SHORT (1011) 27 | #define IOS_VIBRATE_TWO_WEAK_SHORT (1102) 28 | #define IOS_VIBRATE_ONE_WEAK_SHORT (1519) 29 | #define IOS_VIBRATE_ONE_MIDDLE_SHORT (1520) 30 | #define IOS_VIBRATE_THREE_WEAK_SHORT (1521) 31 | 32 | // 構造体定義 -------------------------------------------------------------------- 33 | 34 | typedef struct tagDEVICEMOTIONINFO_IOS 35 | { 36 | double Attitude_Roll ; 37 | double Attitude_Pitch ; 38 | double Attitude_Yaw ; 39 | VECTOR_D RotationRate ; 40 | VECTOR_D Gravity ; 41 | VECTOR_D UserAcceleration ; 42 | VECTOR_D MagneticField ; 43 | } DEVICEMOTIONINFO_IOS ; 44 | 45 | // 関数プロトタイプ宣言----------------------------------------------------------- 46 | 47 | // アプリの外部データ保存用のディレクトリパスを取得する 48 | extern int GetDocumentsDirPath( TCHAR *PathBuffer, size_t PathBufferBytes ) ; 49 | 50 | // アプリのデータ保存用のディレクトリパスを取得する 51 | extern int GetLibraryPreferencesDirPath( TCHAR *PathBuffer, size_t PathBufferBytes ) ; 52 | 53 | // アプリのキャッシュファイル保存用のディレクトリパスを取得する 54 | extern int GetLibraryCachesDirPath( TCHAR *PathBuffer, size_t PathBufferBytes ) ; 55 | 56 | // アプリの一時ファイル保存用のディレクトリパスを取得する 57 | extern int GetTmpDirPath( TCHAR *PathBuffer, size_t PathBufferBytes ) ; 58 | 59 | // ディスプレイの解像度を取得する 60 | extern int GetDisplayResolution_iOS( int *SizeX, int *SizeY ) ; 61 | 62 | // 端末に設定されている言語を取得する( 戻り値 -1:エラー 0以上:言語名文字列の格納に必要なバイト数 ) 63 | extern int GetLanguage_iOS( TCHAR *StringBuffer, int StringBufferSize ) ; 64 | 65 | // 端末に設定されている国を取得する( 戻り値 -1:エラー 0以上:国名文字列の格納に必要なバイト数 ) 66 | extern int GetCountry_iOS( TCHAR *StringBuffer, int StringBufferSize ) ; 67 | 68 | // 文字列入力ダイアログを出す 69 | // StringBuffer : 入力された文字列を代入するバッファの先頭アドレス 70 | // StringBufferBytes : 入力された文字列を代入するバッファのサイズ( 単位:バイト ) 71 | // Title : ダイアログのタイトル 72 | // Message : ダイアログのメッセージ 73 | // IsBlock : 入力が完了するまで関数から出てこないかどうか( 1:入力が完了するまで関数から出てこない 0:ダイアログを表示したら関数から出てくる( 入力完了のチェックは GetStateInputStringDialogBox で行う ) ) 74 | // 戻り値 : 0=成功 2=キャンセルされた -1=エラー発生 75 | extern int StartInputStringDialogBox( TCHAR *StringBuffer, size_t StringBufferBytes, const TCHAR *Title, const TCHAR *Message, int IsBlock ) ; 76 | 77 | // 文字列入力ダイアログの処理が終わったかどうかを取得する 78 | // 戻り値: 0=入力中 1=入力完了 2=キャンセルされた 79 | extern int GetStateInputStringDialogBox( void ) ; 80 | 81 | // モーションセンサーの情報を取得する 82 | extern int GetDeviceMotionInfo_iOS( DEVICEMOTIONINFO_IOS *DeviceMotionInfo ) ; 83 | 84 | // 振動を再生する 85 | // VibrationType : 振動の種類( IOS_VIBRATE_ONE_STRONG_LONG など ) 86 | extern int PlayVibration_iOS( int VibrationType ) ; 87 | 88 | #ifndef DX_NON_NAMESPACE 89 | 90 | } 91 | 92 | #endif // DX_NON_NAMESPACE 93 | 94 | #endif // DX_FUNCTIONIOS_H 95 | 96 | -------------------------------------------------------------------------------- /src/DxGateway.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxGateway.cpp -------------------------------------------------------------------------------- /src/DxGraphics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxGraphics.cpp -------------------------------------------------------------------------------- /src/DxGraphics.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxGraphics.h -------------------------------------------------------------------------------- /src/DxGraphicsFilter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxGraphicsFilter.cpp -------------------------------------------------------------------------------- /src/DxGraphicsFilter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxGraphicsFilter.h -------------------------------------------------------------------------------- /src/DxHandle.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxHandle.cpp -------------------------------------------------------------------------------- /src/DxHandle.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxHandle.h -------------------------------------------------------------------------------- /src/DxHeap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxHeap.cpp -------------------------------------------------------------------------------- /src/DxHeap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxHeap.h -------------------------------------------------------------------------------- /src/DxInput.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxInput.cpp -------------------------------------------------------------------------------- /src/DxInput.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxInput.h -------------------------------------------------------------------------------- /src/DxInputString.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxInputString.cpp -------------------------------------------------------------------------------- /src/DxInputString.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxInputString.h -------------------------------------------------------------------------------- /src/DxLib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxLib.h -------------------------------------------------------------------------------- /src/DxLib.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxLib.txt -------------------------------------------------------------------------------- /src/DxLibMake.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 11.00 2 | # Visual Studio 2010 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DxLibMake", "DxLibMake.vcxproj", "{E4222A5C-B8C6-4B8D-9840-4633AD2D941F}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {E4222A5C-B8C6-4B8D-9840-4633AD2D941F}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {E4222A5C-B8C6-4B8D-9840-4633AD2D941F}.Debug|Win32.Build.0 = Debug|Win32 13 | {E4222A5C-B8C6-4B8D-9840-4633AD2D941F}.Release|Win32.ActiveCfg = Release|Win32 14 | {E4222A5C-B8C6-4B8D-9840-4633AD2D941F}.Release|Win32.Build.0 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | EndGlobal 20 | -------------------------------------------------------------------------------- /src/DxLibMake.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/DxLive2DCubism4.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxLive2DCubism4.cpp -------------------------------------------------------------------------------- /src/DxLive2DCubism4.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxLive2DCubism4.h -------------------------------------------------------------------------------- /src/DxLog.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxLog.cpp -------------------------------------------------------------------------------- /src/DxLog.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxLog.h -------------------------------------------------------------------------------- /src/DxLog.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxLog.txt -------------------------------------------------------------------------------- /src/DxMask.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMask.cpp -------------------------------------------------------------------------------- /src/DxMask.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMask.h -------------------------------------------------------------------------------- /src/DxMath.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMath.cpp -------------------------------------------------------------------------------- /src/DxMath.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMath.h -------------------------------------------------------------------------------- /src/DxMemImg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemImg.cpp -------------------------------------------------------------------------------- /src/DxMemImg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemImg.h -------------------------------------------------------------------------------- /src/DxMemImgDrawFunction0.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemImgDrawFunction0.cpp -------------------------------------------------------------------------------- /src/DxMemImgDrawFunction1.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemImgDrawFunction1.cpp -------------------------------------------------------------------------------- /src/DxMemImgDrawFunction2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemImgDrawFunction2.cpp -------------------------------------------------------------------------------- /src/DxMemImgDrawFunction3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemImgDrawFunction3.cpp -------------------------------------------------------------------------------- /src/DxMemory.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemory.cpp -------------------------------------------------------------------------------- /src/DxMemory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMemory.h -------------------------------------------------------------------------------- /src/DxModel.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModel.cpp -------------------------------------------------------------------------------- /src/DxModel.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModel.h -------------------------------------------------------------------------------- /src/DxModelFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelFile.h -------------------------------------------------------------------------------- /src/DxModelLoader0.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoader0.cpp -------------------------------------------------------------------------------- /src/DxModelLoader1.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoader1.cpp -------------------------------------------------------------------------------- /src/DxModelLoader2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoader2.cpp -------------------------------------------------------------------------------- /src/DxModelLoader3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoader3.cpp -------------------------------------------------------------------------------- /src/DxModelLoader3.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoader3.h -------------------------------------------------------------------------------- /src/DxModelLoader4.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoader4.cpp -------------------------------------------------------------------------------- /src/DxModelLoader4.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoader4.h -------------------------------------------------------------------------------- /src/DxModelLoaderVMD.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoaderVMD.cpp -------------------------------------------------------------------------------- /src/DxModelLoaderVMD.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelLoaderVMD.h -------------------------------------------------------------------------------- /src/DxModelRead.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelRead.cpp -------------------------------------------------------------------------------- /src/DxModelRead.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxModelRead.h -------------------------------------------------------------------------------- /src/DxMovie.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMovie.cpp -------------------------------------------------------------------------------- /src/DxMovie.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxMovie.h -------------------------------------------------------------------------------- /src/DxNetwork.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxNetwork.cpp -------------------------------------------------------------------------------- /src/DxNetwork.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxNetwork.h -------------------------------------------------------------------------------- /src/DxRingBuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxRingBuffer.cpp -------------------------------------------------------------------------------- /src/DxRingBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxRingBuffer.h -------------------------------------------------------------------------------- /src/DxSoftImage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSoftImage.cpp -------------------------------------------------------------------------------- /src/DxSoftImage.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSoftImage.h -------------------------------------------------------------------------------- /src/DxSound.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSound.cpp -------------------------------------------------------------------------------- /src/DxSound.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSound.h -------------------------------------------------------------------------------- /src/DxSoundConvert.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSoundConvert.cpp -------------------------------------------------------------------------------- /src/DxSoundConvert.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSoundConvert.h -------------------------------------------------------------------------------- /src/DxStatic.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxStatic.h -------------------------------------------------------------------------------- /src/DxSystem.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSystem.cpp -------------------------------------------------------------------------------- /src/DxSystem.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxSystem.h -------------------------------------------------------------------------------- /src/DxThread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxThread.cpp -------------------------------------------------------------------------------- /src/DxThread.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxThread.h -------------------------------------------------------------------------------- /src/DxUseCLib スタティックリンクライブラリについて.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLib スタティックリンクライブラリについて.txt -------------------------------------------------------------------------------- /src/DxUseCLib.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLib.cpp -------------------------------------------------------------------------------- /src/DxUseCLib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLib.h -------------------------------------------------------------------------------- /src/DxUseCLibLive2DCubism4.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLibLive2DCubism4.cpp -------------------------------------------------------------------------------- /src/DxUseCLibLive2DCubism4.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLibLive2DCubism4.h -------------------------------------------------------------------------------- /src/DxUseCLibOgg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLibOgg.cpp -------------------------------------------------------------------------------- /src/DxUseCLibOgg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLibOgg.h -------------------------------------------------------------------------------- /src/DxUseCLibPhysics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DxUseCLibPhysics.cpp -------------------------------------------------------------------------------- /src/Empty.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // DO NOT DELETE THIS FILE!!! 3 | // This file is required to configure `DxLibSharedMain` target. 4 | // 5 | -------------------------------------------------------------------------------- /src/HTML5/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.13) 2 | 3 | cmake_policy(SET CMP0076 NEW) 4 | 5 | 6 | 7 | # DxLib 8 | 9 | target_sources(DxLib 10 | PRIVATE 11 | DxBaseFuncHTML5.cpp 12 | DxBaseImageHTML5.cpp 13 | DxFileHTML5.cpp 14 | DxBrowserFontHTML5.cpp 15 | DxFontHTML5.cpp 16 | DxGraphicsFilterHTML5.cpp 17 | DxGraphicsHTML5.cpp 18 | DxInputHTML5.cpp 19 | DxLive2DCubism4HTML5.cpp 20 | DxLogHTML5.cpp 21 | DxMaskHTML5.cpp 22 | DxMemoryHTML5.cpp 23 | DxModelHTML5.cpp 24 | DxMovieHTML5.cpp 25 | DxNetworkHTML5.cpp 26 | DxShaderCodeBin_Base_HTML5.cpp 27 | DxShaderCodeBin_Base3D_HTML5.cpp 28 | DxShaderCodeBin_Filter_HTML5.cpp 29 | DxShaderCodeBin_Live2D_Cubism4_HTML5.cpp 30 | DxShaderCodeBin_Model_HTML5.cpp 31 | DxShaderCodeBin_RgbaMix_HTML5.cpp 32 | DxSoundConvertHTML5.cpp 33 | DxSoundHTML5.cpp 34 | DxSystemHTML5.cpp 35 | DxThreadHTML5.cpp 36 | DxWindow.cpp 37 | ) 38 | 39 | 40 | 41 | # DxUseCLib 42 | 43 | target_sources(DxUseCLib 44 | PRIVATE 45 | DxUseCLibOggHTML5.cpp 46 | ) -------------------------------------------------------------------------------- /src/HTML5/DxBaseFuncHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用標準関数の互換関数プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | // インクルード --------------------------------------------------------------- 13 | #include "DxBaseFuncHTML5.h" 14 | #include "../DxBaseFunc.h" 15 | #include "../DxChar.h" 16 | #include "../DxLog.h" 17 | #include 18 | 19 | #ifndef DX_NON_NAMESPACE 20 | 21 | namespace DxLib 22 | { 23 | 24 | #endif // DX_NON_NAMESPACE 25 | 26 | // マクロ定義 ----------------------------------------------------------------- 27 | 28 | #define CURRENTDIRECTORY_MAX_LENGTH (2048) 29 | 30 | // 構造体宣言 ----------------------------------------------------------------- 31 | 32 | // データ定義 ----------------------------------------------------------------- 33 | 34 | static wchar_t g_CurrentDirectory[ CURRENTDIRECTORY_MAX_LENGTH ] = L""; 35 | 36 | // 関数宣言 ------------------------------------------------------------------- 37 | 38 | // プログラム ----------------------------------------------------------------- 39 | 40 | extern void _SET_DEFAULT_CHARCODEFORMAT( void ) 41 | { 42 | _SET_WCHAR_T_CHARCODEFORMAT( sizeof( wchar_t ) > 2 ? DX_CHARCODEFORMAT_UTF32LE : DX_CHARCODEFORMAT_UTF16LE ) ; 43 | // _SET_CHARSET( DX_CHARSET_SHFTJIS ) ; 44 | // _SET_CHAR_CHARCODEFORMAT( DX_CHARCODEFORMAT_SHIFTJIS ) ; 45 | _SET_CHARSET( DX_CHARSET_UTF8 ) ; 46 | _SET_CHAR_CHARCODEFORMAT( DX_CHARCODEFORMAT_UTF8 ) ; 47 | } 48 | 49 | extern char *_GETCWD( char *Buffer, size_t BufferBytes ) 50 | { 51 | ConvString( ( const char * )L"", -1, HTML5_WCHAR_CHARCODEFORMAT, Buffer, BufferBytes, CHAR_CHARCODEFORMAT ) ; 52 | 53 | return Buffer ; 54 | } 55 | 56 | extern wchar_t *_WGETCWD( wchar_t *Buffer, size_t BufferBytes ) 57 | { 58 | ConvString( ( const char * )L"", -1, HTML5_WCHAR_CHARCODEFORMAT, ( char * )Buffer, BufferBytes, WCHAR_T_CHARCODEFORMAT ) ; 59 | 60 | return Buffer ; 61 | } 62 | 63 | extern int _CHDIR( const char *DirName ) 64 | { 65 | wchar_t TempBuffer[ 1024 ] ; 66 | 67 | ConvString( DirName, -1, CHAR_CHARCODEFORMAT, ( char * )TempBuffer, sizeof( TempBuffer ), HTML5_WCHAR_CHARCODEFORMAT ) ; 68 | return _WCHDIR( TempBuffer ) ; 69 | } 70 | 71 | extern int _WCHDIR( const wchar_t * DirName ) 72 | { 73 | int Result = 0 ; 74 | 75 | CreateRelativePathW_( DirName, g_CurrentDirectory, g_CurrentDirectory, sizeof( g_CurrentDirectory ) ) ; 76 | 77 | return Result != 0 ? 0 : -1 ; 78 | } 79 | 80 | extern int _FPCLASS( double x ) 81 | { 82 | int Return = 0 ; 83 | 84 | if( isnan( x ) ) 85 | { 86 | Return = _FPCLASS_SNAN ; 87 | } 88 | else 89 | if( isinf( x ) ) 90 | { 91 | Return = _FPCLASS_NINF ; 92 | } 93 | 94 | return Return ; 95 | } 96 | 97 | #ifndef DX_NON_NAMESPACE 98 | 99 | } 100 | 101 | #endif // DX_NON_NAMESPACE 102 | 103 | -------------------------------------------------------------------------------- /src/HTML5/DxBaseFuncHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用標準関数の互換関数プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_BASEFUNCHTML5_H 10 | #define DX_BASEFUNCHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | #include "../DxBaseFunc.h" 15 | 16 | #ifndef DX_NON_NAMESPACE 17 | 18 | namespace DxLib 19 | { 20 | 21 | #endif // DX_NON_NAMESPACE 22 | 23 | // マクロ定義 -------------------------------------------------------------------- 24 | 25 | #define HTML5_WCHAR_CHARCODEFORMAT (DX_CHARCODEFORMAT_UTF32LE) 26 | 27 | // 構造体定義 -------------------------------------------------------------------- 28 | 29 | // テーブル----------------------------------------------------------------------- 30 | 31 | // 内部大域変数宣言 -------------------------------------------------------------- 32 | 33 | // 関数プロトタイプ宣言----------------------------------------------------------- 34 | 35 | 36 | #ifndef DX_NON_NAMESPACE 37 | 38 | } 39 | 40 | #endif // DX_NON_NAMESPACE 41 | 42 | #endif // DX_BASEFUNCHTML5_H 43 | -------------------------------------------------------------------------------- /src/HTML5/DxBaseImageHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用BaseImageプログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | // インクルード --------------------------------------------------------------- 15 | #include "DxBaseImageHTML5.h" 16 | #include "../DxStatic.h" 17 | #include "../DxMemory.h" 18 | #include "../DxBaseFunc.h" 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | #ifndef DX_NON_NAMESPACE 25 | 26 | namespace DxLib 27 | { 28 | 29 | #endif // DX_NON_NAMESPACE 30 | 31 | // マクロ定義 ----------------------------------------------------------------- 32 | 33 | // 構造体宣言 ----------------------------------------------------------------- 34 | 35 | typedef struct tagDECODEDIMAGE 36 | { 37 | BYTE* SrcImage; 38 | int SrcLength; 39 | BYTE* DecodedImage; 40 | int Length; 41 | int Width; 42 | int Height; 43 | } DECODEDIMAGE; 44 | 45 | // 関数宣言 ------------------------------------------------------------------- 46 | 47 | // データ定義 ----------------------------------------------------------------- 48 | 49 | int ( *DefaultImageLoadFunc_PF[] )( STREAMDATA *Src, BASEIMAGE *BaseImage, int GetFormatOnly ) = 50 | { 51 | NULL 52 | } ; 53 | 54 | // プログラム ----------------------------------------------------------------- 55 | 56 | #ifdef PROXY_TO_PTHREAD 57 | EM_JS(void, DecodeImage, (em_proxying_ctx* ctx, void* Decoded), 58 | #else 59 | EM_JS(void, DecodeImage, (DECODEDIMAGE* Decoded), 60 | #endif 61 | { 62 | function DecodeImageImpl(wakeUp) { 63 | if (!Module["decodeCanvas"]) { 64 | Module["decodeCanvas"] = document.createElement('canvas'); 65 | Module["decodeContext"] = Module["decodeCanvas"].getContext("2d"); 66 | } 67 | 68 | const Src = HEAPU32[(Decoded>>2)+0]; 69 | const Size = HEAPU32[(Decoded>>2)+1]; 70 | 71 | const imageData = new Uint8ClampedArray(HEAPU8.buffer, Src, Size); 72 | const clonedData = new ArrayBuffer(Size); 73 | const clonedDataView = new Uint8ClampedArray(clonedData); 74 | clonedDataView.set(imageData); 75 | const imageBlob = new Blob([ clonedDataView ]); 76 | 77 | const image = new Image(); 78 | 79 | image.onload = function() { 80 | Module["decodeCanvas"].width = image.width; 81 | Module["decodeCanvas"].height = image.height; 82 | Module["decodeContext"].drawImage(image, 0, 0); 83 | 84 | const decodedImageData = Module["decodeContext"].getImageData(0, 0, image.width, image.height).data; 85 | const dataBuffer = _malloc(decodedImageData.length); 86 | 87 | HEAPU8.set(decodedImageData, dataBuffer); 88 | 89 | HEAPU32[(Decoded>>2)+2] = dataBuffer; 90 | HEAPU32[(Decoded>>2)+3] = decodedImageData.length; 91 | HEAPU32[(Decoded>>2)+4] = image.width; 92 | HEAPU32[(Decoded>>2)+5] = image.height; 93 | 94 | URL.revokeObjectURL(image.src); 95 | wakeUp(); 96 | }; 97 | image.onerror = function() { 98 | HEAPU32[(Decoded>>2)+2] = 0; 99 | 100 | URL.revokeObjectURL(image.src); 101 | wakeUp(); 102 | }; 103 | image.src = URL.createObjectURL(imageBlob); 104 | } 105 | 106 | #ifdef ASYNCIFY 107 | return Asyncify.handleSleep(DecodeImageImpl); 108 | #elif defined(PROXY_TO_PTHREAD) 109 | DecodeImageImpl(function() { 110 | _emscripten_proxy_finish(ctx); 111 | }); 112 | #endif 113 | } 114 | ); 115 | 116 | // 環境依存初期化・終了関数 117 | int DecodeImageOnBrowser(DECODEDIMAGE* Decoded) { 118 | 119 | #ifdef ASYNCIFY 120 | DecodeImage(Decoded); 121 | #elif defined(PROXY_TO_PTHREAD) 122 | auto defaultQueue = emscripten_proxy_get_system_queue(); 123 | emscripten_proxy_sync_with_ctx( 124 | defaultQueue, 125 | emscripten_main_runtime_thread_id(), 126 | &DecodeImage, 127 | (void*)Decoded); 128 | #endif 129 | 130 | return (Decoded->DecodedImage != NULL ? 0 : -1); 131 | } 132 | 133 | // 基本イメージ管理情報の環境依存処理の初期化 134 | extern int InitializeBaseImageManage_PF( void ) 135 | { 136 | return 0 ; 137 | } 138 | 139 | // 基本イメージ管理情報の環境依存処理の後始末 140 | extern int TerminateBaseImageManage_PF( void ) 141 | { 142 | return 0 ; 143 | } 144 | 145 | extern int LoadImageFromBrowser(STREAMDATA *Stream, BASEIMAGE *BaseImage, int GetFormatOnly) 146 | { 147 | DWORD_PTR sp; 148 | STREAMDATASHRED *sstr; 149 | size_t FileSize; 150 | BYTE *ImageData = NULL; 151 | BYTE *DecodedImageData = NULL; 152 | size_t DecodedImageSize; 153 | DECODEDIMAGE DecodedImage; 154 | 155 | { 156 | sstr = &Stream->ReadShred ; 157 | sp = Stream->DataPoint ; 158 | 159 | // ファイルサイズを得る 160 | sstr->Seek( sp, 0, STREAM_SEEKTYPE_END ) ; 161 | FileSize = ( size_t )sstr->Tell( sp ) ; 162 | sstr->Seek( sp, 0, STREAM_SEEKTYPE_SET ) ; 163 | } 164 | 165 | // デコード後のデータを格納するメモリ領域の確保 166 | ImageData = (BYTE *)DXALLOC( ( size_t )FileSize ) ; 167 | if( ImageData == NULL ) goto ERR ; 168 | if( ( sstr->Read( ImageData, sizeof(BYTE), FileSize, sp ) ) <= 0 ) goto ERR ; 169 | 170 | { 171 | DecodedImage.SrcImage = ImageData ; 172 | DecodedImage.SrcLength = FileSize ; 173 | } 174 | 175 | if( DecodeImageOnBrowser(&DecodedImage) == -1 ) goto ERR ; 176 | 177 | DecodedImageSize = ( size_t )(DecodedImage.Width * DecodedImage.Height * 4); 178 | DecodedImageData = (BYTE *)DXALLOC( DecodedImageSize ) ; 179 | _MEMCPY(DecodedImageData, DecodedImage.DecodedImage, DecodedImageSize); 180 | 181 | { 182 | BaseImage->Width = DecodedImage.Width; 183 | BaseImage->Height = DecodedImage.Height; 184 | BaseImage->Pitch = DecodedImage.Width * 4; 185 | BaseImage->GraphData = DecodedImageData; 186 | 187 | // アルファチャンネルありにする 188 | NS_CreateFullColorData( &BaseImage->ColorData ) ; 189 | BaseImage->ColorData.ColorBitDepth = 32 ; 190 | BaseImage->ColorData.PixelByte = 4 ; 191 | BaseImage->ColorData.AlphaLoc = 24 ; 192 | BaseImage->ColorData.AlphaWidth = 8 ; 193 | BaseImage->ColorData.AlphaMask = 0xff000000 ; 194 | BaseImage->ColorData.BlueLoc = 16 ; 195 | BaseImage->ColorData.BlueWidth = 8 ; 196 | BaseImage->ColorData.BlueMask = 0x00ff0000 ; 197 | BaseImage->ColorData.GreenLoc = 8 ; 198 | BaseImage->ColorData.GreenWidth = 8 ; 199 | BaseImage->ColorData.GreenMask = 0x0000ff00 ; 200 | BaseImage->ColorData.RedLoc = 0 ; 201 | BaseImage->ColorData.RedWidth = 8 ; 202 | BaseImage->ColorData.RedMask = 0x000000ff ; 203 | } 204 | 205 | DXFREE(ImageData); 206 | free(DecodedImage.DecodedImage); 207 | 208 | return 0; 209 | 210 | ERR: 211 | DXFREE(ImageData); 212 | 213 | return -1; 214 | } 215 | 216 | #ifndef DX_NON_NAMESPACE 217 | 218 | } 219 | 220 | #endif // DX_NON_NAMESPACE 221 | 222 | -------------------------------------------------------------------------------- /src/HTML5/DxBaseImageHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用BaseImageプログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_BASEIMAGEHTML5_H 10 | #define DX_BASEIMAGEHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | #include "../DxLib.h" 15 | 16 | #ifndef DX_NON_NAMESPACE 17 | 18 | namespace DxLib 19 | { 20 | 21 | #endif // DX_NON_NAMESPACE 22 | 23 | // マクロ定義 -------------------------------------------------------------------- 24 | 25 | // 構造体定義 -------------------------------------------------------------------- 26 | 27 | // 内部大域変数宣言 -------------------------------------------------------------- 28 | 29 | // 関数プロトタイプ宣言----------------------------------------------------------- 30 | 31 | #ifndef DX_NON_NAMESPACE 32 | 33 | } 34 | 35 | #endif // DX_NON_NAMESPACE 36 | 37 | #endif // DX_BASEIMAGEHTML5_H 38 | -------------------------------------------------------------------------------- /src/HTML5/DxBrowserFontHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用フォント関係プログラム 4 | // 5 | // Ver 3.23 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #if !defined(DX_NON_FONT) && defined(DX_USE_BROWSER_FONT) 15 | 16 | // インクルード --------------------------------------------------------------- 17 | #include "DxBrowserFontHTML5.h" 18 | #include "DxBaseFuncHTML5.h" 19 | #include "DxSystemHTML5.h" 20 | #include "../DxFont.h" 21 | #include "../DxFile.h" 22 | #include "../DxMemory.h" 23 | #include "../DxBaseFunc.h" 24 | #include "../DxSystem.h" 25 | #include "../DxArchive_.h" 26 | #include "../DxLog.h" 27 | 28 | #include 29 | #include 30 | #include 31 | 32 | #define FT_FLOOR(X) ((X & -64) / 64) 33 | #define FT_CEIL(X) (((X + 63) & -64) / 64) 34 | 35 | /* FIXME: Right now we assume the gray-scale renderer Freetype is using 36 | supports 256 shades of gray, but we should instead key off of num_grays 37 | in the result FT_Bitmap after the FT_Render_Glyph() call. */ 38 | #define NUM_GRAYS 256 39 | 40 | // #define DEBUG_FONTS 41 | 42 | #ifndef DX_NON_NAMESPACE 43 | 44 | namespace DxLib 45 | { 46 | 47 | #endif // DX_NON_NAMESPACE 48 | 49 | // マクロ定義 ----------------------------------------------------------------- 50 | 51 | // 構造体宣言 ----------------------------------------------------------------- 52 | typedef struct tagFONTDATA 53 | { 54 | BYTE* Bitmap; 55 | int BitmapWidth; 56 | int BitmapHeight; 57 | int BitmapLeft; 58 | int BitmapTop; 59 | float AdvanceX; 60 | } FONTDATA; 61 | 62 | // データ定義 ----------------------------------------------------------------- 63 | 64 | FONTSYSTEM_HTML5 FontSystemHTML5 ; 65 | 66 | // 関数宣言 ------------------------------------------------------------------- 67 | 68 | // プログラム ----------------------------------------------------------------- 69 | 70 | // フォントの HTML5 専用データを解放する 71 | static int TerminateFontHandle_HTML5( FONTMANAGE *ManageData ) 72 | { 73 | // 終了 74 | return 0 ; 75 | } 76 | 77 | int InitializeFontRenderingOnBrowser() { 78 | return MAIN_THREAD_EM_ASM_INT({ 79 | if (!Module["DxLib"]) { 80 | Module["DxLib"] = {}; 81 | } 82 | 83 | Module["DxLib"].TextRenderingCanvas = document.createElement('canvas'); 84 | Module["DxLib"].TextRenderingContext = Module["DxLib"].TextRenderingCanvas.getContext("2d"); 85 | 86 | Module["DxLib"].NextFontDataId = 1; 87 | Module["DxLib"].FontData = []; 88 | 89 | return 0; 90 | }); 91 | } 92 | 93 | // InitFontManage の環境依存処理を行う関数 94 | extern int InitFontManage_PF( void ) 95 | { 96 | InitializeFontRenderingOnBrowser(); 97 | 98 | FontSystemHTML5.initialized = TRUE; 99 | return 0; 100 | } 101 | 102 | // TermFontManage の環境依存処理を行う関数 103 | extern int TermFontManage_PF( void ) 104 | { 105 | return 0 ; 106 | } 107 | 108 | 109 | 110 | int CreateFontOnBrowser(char* FontName, int FontSize) { 111 | return MAIN_THREAD_EM_ASM_INT({ 112 | const FontName = $0; 113 | const FontSize = $1; 114 | 115 | const FontNameString = UTF8ToString(FontName); 116 | const FontSpec = `${FontSize}px '${FontNameString}'`; 117 | 118 | const id = Module["DxLib"].NextFontDataId++; 119 | (Module["DxLib"].FontData[id] = { 120 | font: FontSpec, 121 | size: FontSize 122 | }); 123 | return id; 124 | }, FontName, FontSize); 125 | } 126 | 127 | 128 | 129 | 130 | // CreateFontToHandle の環境依存処理を行う関数 131 | extern int CreateFontToHandle_PF( CREATEFONTTOHANDLE_GPARAM *GParam, FONTMANAGE *ManageData, int DefaultCharSet ) 132 | { 133 | // フォントデータファイルを使用する場合は何もせずに終了 134 | if( ManageData->UseFontDataFile ) 135 | { 136 | return 0 ; 137 | } 138 | 139 | int ptSize = ManageData->BaseInfo.FontSize; 140 | FONTMANAGE_PF* font = ManageData->PF; 141 | 142 | if ( ! FontSystemHTML5.initialized ) { 143 | return -1; 144 | } 145 | 146 | { 147 | char UTF8_FontName[ 128 * 4 ] ; 148 | int FontId = 0; 149 | 150 | ConvString( ( char * )ManageData->FontName, -1, WCHAR_T_CHARCODEFORMAT, UTF8_FontName, sizeof( UTF8_FontName ), DX_CHARCODEFORMAT_UTF8 ) ; 151 | FontId = CreateFontOnBrowser(UTF8_FontName, ptSize); 152 | 153 | font->FontId = FontId; 154 | } 155 | 156 | { 157 | ManageData->BaseInfo.FontHeight = ptSize ; 158 | ManageData->BaseInfo.FontAddHeight = 0 ; 159 | ManageData->BaseInfo.MaxWidth = ptSize; 160 | ManageData->BaseInfo.Ascent = ptSize; 161 | } 162 | 163 | // 戻り値を返す 164 | return 0 ; 165 | } 166 | 167 | // CreateFontToHandle の環境依存エラー処理を行う関数 168 | extern int CreateFontToHandle_Error_PF( FONTMANAGE * ManageData ) 169 | { 170 | // 解放処理を実行 171 | TerminateFontHandle_HTML5( ManageData ) ; 172 | 173 | // 終了 174 | return 0 ; 175 | } 176 | 177 | // TerminateFontHandle の環境依存処理を行う関数 178 | extern int TerminateFontHandle_PF( FONTMANAGE *ManageData ) 179 | { 180 | // 解放処理を実行 181 | TerminateFontHandle_HTML5( ManageData ) ; 182 | 183 | // 終了 184 | return 0 ; 185 | } 186 | 187 | // SetupFontCache の環境依存処理を行う関数 188 | extern int SetupFontCache_PF( CREATEFONTTOHANDLE_GPARAM * /* GParam */, FONTMANAGE * /* ManageData */, int /* ASyncThread */ ) 189 | { 190 | // 特に何もしない 191 | return 0 ; 192 | } 193 | 194 | // FontCacheCharaAddToHandleの環境依存処理を行う関数( 実行箇所区別 0 ) 195 | extern int FontCacheCharAddToHandle_Timing0_PF( FONTMANAGE *ManageData ) 196 | { 197 | // とくにすること無し 198 | return 0 ; 199 | } 200 | 201 | int RenderFontBitmap(int FontId, DWORD CharCode, FONTDATA* FontData) { 202 | MAIN_THREAD_EM_ASM({ 203 | const FontId = $0; 204 | const CharCode = $1; 205 | let FontData = $2; 206 | 207 | const font = Module["DxLib"].FontData[FontId].font; 208 | const size = Module["DxLib"].FontData[FontId].size; 209 | 210 | Module["DxLib"].TextRenderingContext.fillStyle = "0xfff"; 211 | Module["DxLib"].TextRenderingContext.font = font; 212 | // Module["DxLib"].TextRenderingContext.textBaseline = "bottom"; 213 | 214 | const text = String.fromCharCode(CharCode); 215 | const textMetrix = Module["DxLib"].TextRenderingContext.measureText(text); 216 | const fontWidth = Math.ceil(textMetrix.actualBoundingBoxRight - textMetrix.actualBoundingBoxLeft) || 1; 217 | const fontHeight = Math.ceil(textMetrix.actualBoundingBoxAscent + textMetrix.actualBoundingBoxDescent) || 1; 218 | const fontXAdvance = fontWidth; 219 | 220 | Module["DxLib"].TextRenderingContext.clearRect(0, 0, Module["DxLib"].TextRenderingCanvas.width, Module["DxLib"].TextRenderingCanvas.height); 221 | Module["DxLib"].TextRenderingContext.fillText(text, 0, Math.ceil(textMetrix.actualBoundingBoxAscent)); 222 | 223 | const textBitmap = Module["DxLib"].TextRenderingContext.getImageData(0, 0, fontWidth, fontHeight).data; 224 | const dataBuffer = _malloc(textBitmap.length); 225 | 226 | HEAPU8.set(textBitmap, dataBuffer); 227 | 228 | HEAP32[FontData>>2] = dataBuffer; FontData += 4; // buffer 229 | HEAP32[FontData>>2] = fontWidth; FontData += 4; // width 230 | HEAP32[FontData>>2] = fontHeight; FontData += 4; // height 231 | HEAP32[FontData>>2] = 0; FontData += 4; // left 232 | HEAP32[FontData>>2] = size - textMetrix.actualBoundingBoxAscent; FontData += 4; // top 233 | HEAPF32[FontData>>2] = fontXAdvance; FontData += 4; // xAdvance 234 | }, FontId, CharCode, FontData); 235 | 236 | return 0; 237 | } 238 | 239 | // FontCacheCharaAddToHandleの環境依存処理を行う関数( 実行箇所区別 1 ) 240 | extern int FontCacheCharAddToHandle_Timing1_PF( FONTMANAGE *ManageData, FONTCHARDATA *CharData, DWORD CharCode, DWORD IVSCode, int TextureCacheUpdate ) 241 | { 242 | int Space; 243 | 244 | FONTMANAGE_PF* font = ManageData->PF; 245 | FONTDATA FontData; 246 | size_t BitmapSize; 247 | BYTE *AlphaChannel = NULL; 248 | 249 | // スペースかどうかを取得しておく 250 | Space = CharCode == L' ' ? 1 : ( CharCode == ( DWORD )FSYS.DoubleByteSpaceCharCode ? 2 : 0 ) ; 251 | 252 | if ( !font || !font->FontId ) { 253 | DXST_LOGFILEFMT_ADDA(("Font Error: Parameter is NULL!\n")); 254 | return -1; 255 | } 256 | 257 | RenderFontBitmap(font->FontId, CharCode, &FontData); 258 | BitmapSize = FontData.BitmapWidth * FontData.BitmapHeight; 259 | 260 | AlphaChannel = (BYTE*)DXALLOC(BitmapSize); 261 | 262 | { 263 | BYTE* pSrc = FontData.Bitmap; 264 | BYTE* pDst = AlphaChannel; 265 | int i; 266 | 267 | for (i = 0; i < BitmapSize; i++) 268 | { 269 | *pDst = *(pSrc + 3); 270 | // if (*pDst < 64) { 271 | // *pDst = 0; 272 | // } 273 | pSrc += 4; 274 | pDst += 1; 275 | } 276 | } 277 | 278 | { 279 | if (Space != 0) { 280 | FontCacheCharImageBltToHandle( 281 | ManageData, 282 | CharData, 283 | CharCode, 284 | IVSCode, 285 | TRUE, 286 | DX_FONT_SRCIMAGETYPE_8BIT_MAX255, 287 | NULL, 288 | 0, 289 | 0, 290 | 0, 291 | 0, 292 | 0, 293 | FontData.AdvanceX, 294 | FALSE 295 | ); 296 | } else { 297 | FontCacheCharImageBltToHandle( 298 | ManageData, 299 | CharData, 300 | CharCode, 301 | IVSCode, 302 | FALSE, 303 | DX_FONT_SRCIMAGETYPE_8BIT_MAX255, 304 | AlphaChannel, 305 | FontData.BitmapWidth, 306 | FontData.BitmapHeight, 307 | FontData.BitmapWidth, 308 | FontData.BitmapLeft, 309 | FontData.BitmapTop, 310 | FontData.AdvanceX, 311 | TextureCacheUpdate 312 | ); 313 | } 314 | } 315 | 316 | DXFREE(AlphaChannel); 317 | free(FontData.Bitmap); 318 | 319 | // 戻り値を返す 320 | return 0 ; 321 | } 322 | 323 | // FontCacheCharaAddToHandleの環境依存処理を行う関数( 実行箇所区別 2 ) 324 | extern int FontCacheCharAddToHandle_Timing2_PF( FONTMANAGE *ManageData ) 325 | { 326 | // 特に何もしない 327 | return 0 ; 328 | } 329 | 330 | // EnumFontName の環境依存処理を行う関数 331 | extern int EnumFontName_PF( ENUMFONTDATA *EnumFontData, int IsEx, int CharSet ) 332 | { 333 | // 正常終了 334 | return 0 ; 335 | } 336 | 337 | 338 | 339 | #ifndef DX_NON_NAMESPACE 340 | 341 | } 342 | 343 | #endif // DX_NON_NAMESPACE 344 | 345 | 346 | #endif // DX_NON_FONT 347 | 348 | -------------------------------------------------------------------------------- /src/HTML5/DxBrowserFontHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用フォント関係プログラムヘッダファイル 4 | // 5 | // Ver 3.23 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_FONTHTML5_H 10 | #define DX_FONTHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_FONT 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxFile.h" 18 | 19 | #ifndef DX_NON_NAMESPACE 20 | 21 | namespace DxLib 22 | { 23 | 24 | #endif // DX_NON_NAMESPACE 25 | 26 | // マクロ定義 -------------------------------------------------------------------- 27 | 28 | #define FSYSHTML5 FontSystemHTML5 29 | 30 | // 構造体定義 -------------------------------------------------------------------- 31 | 32 | /* Cached glyph information */ 33 | typedef struct cached_glyph { 34 | int stored; 35 | int minx; 36 | int maxx; 37 | int miny; 38 | int maxy; 39 | int yoffset; 40 | int advance; 41 | uint16_t cached; 42 | } c_glyph; 43 | 44 | // HTML5用 フォントキャッシュの環境依存管理データ 45 | struct FONTMANAGE_PF 46 | { 47 | int FontId; 48 | } ; 49 | 50 | // HTML5用 フォントシステム用構造体 51 | struct FONTSYSTEM_HTML5 52 | { 53 | int initialized; 54 | } ; 55 | 56 | // 内部大域変数宣言 -------------------------------------------------------------- 57 | 58 | extern FONTSYSTEM_HTML5 FontSystemHTML5 ; 59 | 60 | // 関数プロトタイプ宣言----------------------------------------------------------- 61 | 62 | #ifndef DX_NON_NAMESPACE 63 | 64 | } 65 | 66 | #endif // DX_NON_NAMESPACE 67 | 68 | #endif // DX_NON_FONT 69 | 70 | #endif // DX_FONTHTML5_H 71 | -------------------------------------------------------------------------------- /src/HTML5/DxFileHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用ファイル関係プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | // インクルード --------------------------------------------------------------- 13 | #include "../DxFile.h" 14 | #include "../DxLog.h" 15 | #include "../DxChar.h" 16 | #include "../DxBaseFunc.h" 17 | #include "../DxMemory.h" 18 | 19 | #ifndef DX_NON_NAMESPACE 20 | 21 | namespace DxLib 22 | { 23 | 24 | #endif // DX_NON_NAMESPACE 25 | 26 | // マクロ定義 ----------------------------------------------------------------- 27 | 28 | #define MAX_PATH_LENGTH 1024 29 | #define NUM_OPS 1024 30 | #define MAX_FH_NUM 1024 31 | #define MAX_DH_NUM 256 32 | #define CHUNK_SIZE 2048 33 | 34 | // 構造体宣言 ----------------------------------------------------------------- 35 | 36 | // データ定義 ----------------------------------------------------------------- 37 | 38 | // パスの始まりが / や \\ だった場合、ルートディレクトリを指定したことにするか( 1:ルートディレクトリを指定したことにする 0:ルートディレクトリを指定したことにしない ) 39 | int g_EnableRootDirName = 0 ; 40 | 41 | // 追加のドライブ名の数 42 | int g_AddDriveNameNum = 3 ; 43 | 44 | // 追加のドライブ名 45 | const char * g_AddDriveName[ 16 ] = 46 | { 47 | "/data/", 48 | "/mnt/", 49 | "/storage/", 50 | } ; 51 | 52 | // 関数宣言 ------------------------------------------------------------------- 53 | 54 | // プログラム ----------------------------------------------------------------- 55 | 56 | // ファイルアクセス処理の初期化・終了関数 57 | 58 | // ファイルアクセス処理の初期化関数の環境依存の処理を行う関数 59 | extern int InitializeFile_PF( void ) 60 | { 61 | return 0 ; 62 | } 63 | 64 | // ファイルアクセス処理の後始末関数の環境依存の処理を行う関数 65 | extern int TerminateFile_PF( void ) 66 | { 67 | return 0 ; 68 | } 69 | 70 | // ファイルアクセス関数 71 | static int HTML5_wchar_t_to_utf8_Path( const wchar_t *Path, char *utf8_PathBuffer, size_t utf8_PathBufferBytes ) 72 | { 73 | wchar_t DirPath[ 512 ], FullPath[ 512 ] ; 74 | 75 | // カレントディレクトリの取得 76 | _WGETCWD( DirPath, sizeof( DirPath ) ) ; 77 | 78 | // フルパスを作成 79 | ConvertFullPathW_( Path, FullPath, sizeof( FullPath ), DirPath ) ; 80 | 81 | // パス中の \ を / に置換する 82 | ChangeEnMarkToSlashW_( FullPath ) ; 83 | 84 | // // ドライブ名が大文字になっていたら小文字にする 85 | // { 86 | // int i ; 87 | // 88 | // for( i = 0 ; FullPath[ i ] != '\0' && FullPath[ i ] != L':' ; i ++ ) 89 | // { 90 | // if( FullPath[ i ] >= L'A' && FullPath[ i ] <= L'Z' ) 91 | // { 92 | // FullPath[ i ] = FullPath[ i ] - L'A' + L'a' ; 93 | // } 94 | // } 95 | // } 96 | 97 | // wchar_t から UTF-8 に変換 98 | ConvString( ( const char * )FullPath, -1, WCHAR_T_CHARCODEFORMAT, utf8_PathBuffer, utf8_PathBufferBytes, DX_CHARCODEFORMAT_UTF8 ) ; 99 | 100 | return 0 ; 101 | } 102 | 103 | extern int ReadOnlyFileAccessOpen_PF( FILEACCESS *FileAccess, const wchar_t *Path, int UseCacheFlag, int BlockReadFlag ) 104 | { 105 | char FullPathUTF8[ 1024 ] ; 106 | 107 | // wchar_t から UTF-8 に変換 108 | HTML5_wchar_t_to_utf8_Path( Path, FullPathUTF8, sizeof( FullPathUTF8 ) ) ; 109 | 110 | FileAccess->PF.FilePointer = fopen( FullPathUTF8, "rb" ) ; 111 | 112 | if( FileAccess->PF.FilePointer == NULL ) 113 | { 114 | return -1 ; 115 | } 116 | 117 | // ファイルサイズを取得 118 | fseek( FileAccess->PF.FilePointer, 0, SEEK_END ) ; 119 | FileAccess->Size = ftell( FileAccess->PF.FilePointer ) ; 120 | fseek( FileAccess->PF.FilePointer, 0, SEEK_SET ) ; 121 | 122 | // 正常終了 123 | return 0 ; 124 | } 125 | 126 | extern int ReadOnlyFileAccessClose_PF( FILEACCESS *FileAccess ) 127 | { 128 | // ファイルを閉じる 129 | fclose( FileAccess->PF.FilePointer ) ; 130 | FileAccess->PF.FilePointer = NULL ; 131 | 132 | return 0 ; 133 | } 134 | 135 | extern int ReadOnlyFileAccessSeek_PF( FILEACCESS *FileAccess, LONGLONG SeekPoint ) 136 | { 137 | // ファイルアクセス位置を変更する 138 | fseek( FileAccess->PF.FilePointer, SeekPoint, SEEK_SET ) ; 139 | 140 | // 正常終了 141 | return 0 ; 142 | } 143 | 144 | extern size_t ReadOnlyFileAccessRead_PF( void *Buffer, size_t BlockSize, size_t DataNum, FILEACCESS *FileAccess ) 145 | { 146 | int BytesRead ; 147 | 148 | if( BlockSize == 0 || DataNum == 0 ) 149 | { 150 | return 0 ; 151 | } 152 | 153 | BytesRead = fread( Buffer, BlockSize, DataNum, FileAccess->PF.FilePointer ) * BlockSize ; 154 | 155 | return BytesRead ; 156 | } 157 | 158 | extern int ReadOnlyFileAccessIdleCheck_PF( FILEACCESS *FileAccess ) 159 | { 160 | return TRUE ; 161 | } 162 | 163 | extern int ReadOnlyFileAccessChDir_PF( const wchar_t *Path ) 164 | { 165 | return _WCHDIR( Path ) ; 166 | } 167 | 168 | extern int ReadOnlyFileAccessGetDirS_PF( wchar_t *Buffer, size_t BufferBytes ) 169 | { 170 | _WGETCWD( Buffer, BufferBytes ) ; 171 | 172 | return 0 ; 173 | } 174 | 175 | extern int ReadOnlyFileAccessFindFirst_PF( FINDINFO *FindInfo, const wchar_t *FilePath, FILEINFOW *Buffer ) 176 | { 177 | wchar_t DirPath[ 1024 ] ; 178 | char DirPathUTF8[ 1024 ] ; 179 | 180 | // ディレクトリパスとファイル名を分ける 181 | AnalysisFileNameAndDirPathW_( FilePath, FindInfo->PF.SearchFileName, sizeof( FindInfo->PF.SearchFileName ), DirPath, sizeof( DirPath ) ) ; 182 | 183 | // ディレクトリパスを wchar_t から UTF-8 に変換 184 | HTML5_wchar_t_to_utf8_Path( DirPath, DirPathUTF8, sizeof( DirPathUTF8 ) ) ; 185 | 186 | FindInfo->PF.Dir = NULL ; 187 | 188 | FindInfo->PF.Dir = opendir( DirPathUTF8 ) ; 189 | if( FindInfo->PF.Dir == NULL ) 190 | { 191 | return -1 ; 192 | } 193 | 194 | // 最初のファイルを検索する 195 | if( ReadOnlyFileAccessFindNext_PF( FindInfo, Buffer ) < 0 ) 196 | { 197 | closedir( FindInfo->PF.Dir ) ; 198 | FindInfo->PF.Dir = NULL ; 199 | 200 | return -1 ; 201 | } 202 | 203 | return 0 ; 204 | } 205 | 206 | extern int ReadOnlyFileAccessFindNext_PF( FINDINFO *FindInfo, FILEINFOW *Buffer ) 207 | { 208 | const char *FileName ; 209 | wchar_t FileNameW[ 1024 ] ; 210 | 211 | if( FindInfo->PF.Dir == NULL ) 212 | { 213 | return -1 ; 214 | } 215 | 216 | for(;;) 217 | { 218 | dirent *ret = readdir( FindInfo->PF.Dir ) ; 219 | if( ret == NULL ) 220 | { 221 | return -1 ; 222 | } 223 | 224 | ConvString( ret->d_name, -1, DX_CHARCODEFORMAT_UTF8, ( char * )FileNameW, sizeof( FileNameW ), WCHAR_T_CHARCODEFORMAT ) ; 225 | 226 | if( Strcmp_Str2_WildcardW_( FileNameW, FindInfo->PF.SearchFileName ) == 0 ) 227 | { 228 | if( Buffer ) 229 | { 230 | CL_strcpy( WCHAR_T_CHARCODEFORMAT, ( char * )Buffer->Name, ( char * )FileNameW ) ; 231 | Buffer->DirFlag = ret->d_type == DT_DIR ? TRUE : FALSE ; 232 | Buffer->Size = 0 ; 233 | _MEMSET( &Buffer->CreationTime, 0, sizeof( Buffer->CreationTime ) ) ; 234 | _MEMSET( &Buffer->LastWriteTime, 0, sizeof( Buffer->LastWriteTime ) ) ; 235 | } 236 | 237 | return 0 ; 238 | } 239 | } 240 | 241 | return -1 ; 242 | } 243 | 244 | extern int ReadOnlyFileAccessFindClose_PF( FINDINFO *FindInfo ) 245 | { 246 | closedir( FindInfo->PF.Dir ) ; 247 | FindInfo->PF.Dir = NULL ; 248 | 249 | return 0 ; 250 | } 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | // 書き込み専用ファイルアクセス関数 265 | extern int WriteOnlyFileAccessDelete_PF( const wchar_t *Path ) 266 | { 267 | char FullPathUTF8[ 1024 ] ; 268 | 269 | // wchar_t から UTF-8 に変換 270 | HTML5_wchar_t_to_utf8_Path( Path, FullPathUTF8, sizeof( FullPathUTF8 ) ) ; 271 | 272 | remove( FullPathUTF8 ) ; 273 | 274 | return 0 ; 275 | } 276 | 277 | extern DWORD_PTR WriteOnlyFileAccessOpen_PF( const wchar_t *Path ) 278 | { 279 | char FullPathUTF8[ 1024 ] ; 280 | FILE *fp ; 281 | 282 | // wchar_t から UTF-8 に変換 283 | HTML5_wchar_t_to_utf8_Path( Path, FullPathUTF8, sizeof( FullPathUTF8 ) ) ; 284 | 285 | // ファイルを開く 286 | fp = fopen( FullPathUTF8, "wb" ) ; 287 | if( fp == NULL ) 288 | { 289 | return 0 ; 290 | } 291 | 292 | return ( DWORD_PTR )fp ; 293 | } 294 | 295 | extern int WriteOnlyFileAccessClose_PF( DWORD_PTR Handle ) 296 | { 297 | FILE *fp = ( FILE * )Handle ; 298 | 299 | fclose( fp ) ; 300 | 301 | return 0 ; 302 | } 303 | 304 | extern int WriteOnlyFileAccessSeek_PF( DWORD_PTR Handle, LONGLONG SeekPoint, int SeekType ) 305 | { 306 | FILE *fp = ( FILE * )Handle ; 307 | 308 | fseek( fp, SeekPoint, SeekType ) ; 309 | 310 | return 0 ; 311 | } 312 | 313 | extern int WriteOnlyFileAccessWrite_PF( DWORD_PTR Handle, void *Buffer, size_t WriteSize, size_t *GetWriteSize ) 314 | { 315 | FILE *fp = ( FILE * )Handle ; 316 | size_t lWriteSize ; 317 | 318 | lWriteSize = fwrite( Buffer, 1, WriteSize, fp ) ; 319 | 320 | if( GetWriteSize ) 321 | { 322 | *GetWriteSize = lWriteSize ; 323 | } 324 | 325 | return 0 ; 326 | } 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | #ifndef DX_NON_NAMESPACE 335 | 336 | } 337 | 338 | #endif // DX_NON_NAMESPACE 339 | 340 | -------------------------------------------------------------------------------- /src/HTML5/DxFileHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用ファイル関係プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_FILEHTML5_H 10 | #define DX_FILEHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | #include "../DxThread.h" 15 | #include 16 | #include 17 | #include 18 | 19 | #ifndef DX_NON_NAMESPACE 20 | 21 | namespace DxLib 22 | { 23 | 24 | #endif // DX_NON_NAMESPACE 25 | 26 | // マクロ定義 -------------------------------------------------------------------- 27 | 28 | // 構造体定義 -------------------------------------------------------------------- 29 | 30 | // HTML5用ファイルアクセス処理用構造体 31 | struct FILEACCESS_PF 32 | { 33 | FILE *FilePointer ; // ファイルアクセス用ファイルポインタ 34 | } ; 35 | 36 | // ファイル検索処理用構造体 37 | struct FINDINFO_PF 38 | { 39 | DIR *Dir ; // ディレクトリアクセス用ディレクトリ 40 | wchar_t SearchFileName[ 1024 ] ; // 検索ファイル名 41 | } ; 42 | 43 | // ファイルアクセス処理が使用するグローバルデータの環境依存データ構造体 44 | struct FILEMANAGEDATA_PF 45 | { 46 | const char * InternalDataPath ; 47 | int InternalDataPathLength ; 48 | const char * ExternalDataPath ; 49 | int ExternalDataPathLength ; 50 | } ; 51 | 52 | // テーブル----------------------------------------------------------------------- 53 | 54 | // 内部大域変数宣言 -------------------------------------------------------------- 55 | 56 | // 関数プロトタイプ宣言----------------------------------------------------------- 57 | 58 | #ifndef DX_NON_NAMESPACE 59 | 60 | } 61 | 62 | #endif // DX_NON_NAMESPACE 63 | 64 | #endif // DX_FILEHTML5_H 65 | -------------------------------------------------------------------------------- /src/HTML5/DxFontHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用フォント関係プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_FONTHTML5_H 10 | #define DX_FONTHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_FONT 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxFile.h" 18 | #include 19 | 20 | #include FT_FREETYPE_H 21 | #include FT_OUTLINE_H 22 | #include FT_STROKER_H 23 | #include FT_GLYPH_H 24 | #include FT_TRUETYPE_IDS_H 25 | 26 | #ifndef DX_NON_NAMESPACE 27 | 28 | namespace DxLib 29 | { 30 | 31 | #endif // DX_NON_NAMESPACE 32 | 33 | // マクロ定義 -------------------------------------------------------------------- 34 | 35 | #define FSYSHTML5 FontSystemHTML5 36 | 37 | // 構造体定義 -------------------------------------------------------------------- 38 | 39 | /* Cached glyph information */ 40 | typedef struct cached_glyph { 41 | int stored; 42 | FT_UInt index; 43 | FT_Bitmap bitmap; 44 | FT_Bitmap pixmap; 45 | int minx; 46 | int maxx; 47 | int miny; 48 | int maxy; 49 | int yoffset; 50 | int advance; 51 | uint16_t cached; 52 | } c_glyph; 53 | 54 | // HTML5用 フォントキャッシュの環境依存管理データ 55 | struct FONTMANAGE_PF 56 | { 57 | /* Freetype2 maintains all sorts of useful info itself */ 58 | FT_Face face; 59 | 60 | /* We'll cache these ourselves */ 61 | int width; 62 | int height; 63 | int ascent; 64 | int descent; 65 | int lineskip; 66 | 67 | /* The font style */ 68 | int italic; 69 | int style; 70 | int outline; 71 | 72 | /* Whether kerning is desired */ 73 | int kerning; 74 | 75 | /* Extra width in glyph bounds for text styles */ 76 | int glyph_overhang; 77 | float glyph_italics; 78 | 79 | /* Information in the font for underlining */ 80 | int underline_offset; 81 | int underline_height; 82 | 83 | /* We are responsible for closing the font stream */ 84 | int src; 85 | int freesrc; 86 | FT_Open_Args args; 87 | 88 | /* For non-scalable formats, we must remember which font index size */ 89 | int font_size_family; 90 | 91 | /* really just flags passed into FT_Load_Glyph */ 92 | int hinting; 93 | } ; 94 | 95 | // HTML5用 フォントシステム用構造体 96 | struct FONTSYSTEM_HTML5 97 | { 98 | int initialized; 99 | FT_Library library; 100 | } ; 101 | 102 | // 内部大域変数宣言 -------------------------------------------------------------- 103 | 104 | extern FONTSYSTEM_HTML5 FontSystemHTML5 ; 105 | 106 | // 関数プロトタイプ宣言----------------------------------------------------------- 107 | 108 | #ifndef DX_NON_NAMESPACE 109 | 110 | } 111 | 112 | #endif // DX_NON_NAMESPACE 113 | 114 | #endif // DX_NON_FONT 115 | 116 | #endif // DX_FONTHTML5_H 117 | -------------------------------------------------------------------------------- /src/HTML5/DxGraphicsFilterHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用GraphFilter系プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_GRAPHICSFILTERHTML5_H 10 | #define DX_GRAPHICSFILTERHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_FILTER 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxLib.h" 18 | #include "../DxGraphicsFilter.h" 19 | #include "../DxArchive_.h" 20 | #include "DxGraphicsHTML5.h" 21 | 22 | #ifndef DX_NON_NAMESPACE 23 | 24 | namespace DxLib 25 | { 26 | 27 | #endif // DX_NON_NAMESPACE 28 | 29 | // マクロ定義 -------------------------------------------------------------------- 30 | 31 | // 構造体定義 -------------------------------------------------------------------- 32 | 33 | // フィルター処理用の情報構造体 34 | struct GRAPHFILTER_SYSTEMIFNO_HTML5 35 | { 36 | int WorkDrawValidGrHandle[ 2 ][ 18 ][ 18 ][ 2 ] ; // フィルター処理作業用描画可能テクスチャ[ 0:整数テクスチャ 1:浮動小数点テクスチャ ][ 2のn乗 ][ 作業用2枚 ] 37 | 38 | GRAPHICS_HTML5_SHADER Gauss[ 3 ] ; // ガウスフィルタのピクセルシェーダー 39 | GRAPHICS_HTML5_SHADER BrightClip[ 2 ][ 2 ][ 2 ] ; // 明るさでクリップするフィルタのピクセルシェーダー[ 1:一定以上クリップ 0:一定以下クリップ ][ 1:クリップ塗りつぶしあり 0:塗りつぶしなし ][ 0:通常用 1:乗算済みアルファ用 ] 40 | GRAPHICS_HTML5_SHADER BrightScale[ 2 ] ; // 指定の明るさの領域を拡大するフィルタのピクセルシェーダー[ 0:通常用 1:乗算済みアルファ用 ] 41 | GRAPHICS_HTML5_SHADER DownScale[ 3 ] ; // 縮小フィルター( 0:X2 1:X4 2:X8 ) 42 | GRAPHICS_HTML5_SHADER Hsb[ 3 ][ 2 ] ; // HSBフィルター[ 0:RGB to HSI 1:HSI to RGB 2:HSB の HLock ][ 0:通常用 1:乗算済みアルファ用 ] 43 | GRAPHICS_HTML5_SHADER Mono ; // モノトーンフィルター 44 | GRAPHICS_HTML5_SHADER Invert[ 2 ] ; // 階調反転フィルター[ 0:通常用 1:乗算済みアルファ用 ] 45 | GRAPHICS_HTML5_SHADER Level[ 2 ] ; // レベル補正フィルター[ 0:通常用 1:乗算済みアルファ用 ] 46 | GRAPHICS_HTML5_SHADER TwoColor[ 2 ] ; // 2値化フィルター[ 0:通常用 1:乗算済みアルファ用 ] 47 | GRAPHICS_HTML5_SHADER GradientMap[ 2 ][ 2 ] ; // グラデーションマップフィルター[ 0:通常用 1:乗算済みアルファ用 ] 48 | GRAPHICS_HTML5_SHADER Replacement[ 2 ] ; // 色の置換フィルター[ 0:通常用 1:乗算済みアルファ用 ] 49 | GRAPHICS_HTML5_SHADER PreMulAlpha ; // 通常画像から乗算済みアルファ画像を作成する為のフィルター 50 | GRAPHICS_HTML5_SHADER InterpAlpha ; // 乗算済みアルファ画像から通常画像を作成する為のフィルター 51 | GRAPHICS_HTML5_SHADER YUVtoRGB[ 4 ] ; // YUVカラーをRGBカラーに変換するフィルター 52 | GRAPHICS_HTML5_SHADER Bicubic ; // バイキュービック補間フィルター 53 | GRAPHICS_HTML5_SHADER Lanczos3 ; // Lanczos-3補間フィルター 54 | 55 | GRAPHICS_HTML5_SHADER BasicBlend[ DX_GRAPH_BLEND_NUM ] ; // 基本的なブレンドフィルター 56 | GRAPHICS_HTML5_SHADER RgbaMixBase[ 2 ] ; // RGBAMixブレンド基本[ 0:通常用 1:乗算済みアルファ用 ] 57 | GRAPHICS_HTML5_SHADER RgbaMixSRGBB[ 4 ][ 2 ] ; // RGBAMixブレンドの A だけ BRGBA の4つ[ 0:通常用 1:乗算済みアルファ用 ] 58 | GRAPHICS_HTML5_SHADER RgbaMixSRRRB[ 4 ][ 4 ][ 2 ] ; // RGBAMixブレンドの SYYY BX の16こ [ Y ][ X ][ 0:通常用 1:乗算済みアルファ用 ] 59 | GRAPHICS_HTML5_SHADER RgbaMixS[ 4 ][ 4 ][ 4 ][ 4 ][ 2 ] ; // RGBAMixブレンドの S だけの組み合わせ256個[ R ][ G ][ B ][ A ][ 0:通常用 1:乗算済みアルファ用 ] 60 | } ; 61 | 62 | // 内部大域変数宣言 -------------------------------------------------------------- 63 | 64 | extern GRAPHFILTER_SYSTEMIFNO_HTML5 GraphFilterSystemInfoHTML5 ; 65 | 66 | // 関数プロトタイプ宣言----------------------------------------------------------- 67 | 68 | // フィルターで使用している全てのシェーダーを解放する 69 | extern int GraphFilter_HTML5_ReleaseShaderAll( void ) ; 70 | 71 | #ifndef DX_NON_NAMESPACE 72 | 73 | } 74 | 75 | #endif // DX_NON_NAMESPACE 76 | 77 | #endif // DX_NON_FILTER 78 | 79 | #endif // DX_GRAPHICSFILTERHTML5_H 80 | 81 | -------------------------------------------------------------------------------- /src/HTML5/DxInputHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用入力情報プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_INPUTHTML5_H 10 | #define DX_INPUTHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_INPUT 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxLib.h" 18 | 19 | #ifndef DX_NON_NAMESPACE 20 | 21 | namespace DxLib 22 | { 23 | 24 | #endif // DX_NON_NAMESPACE 25 | 26 | // マクロ定義 -------------------------------------------------------------------- 27 | 28 | #define HTML5_INPUT_LOG_NUM (64) 29 | #define HTML5_DEVICE_MAX_NUM (64) 30 | #define HTML5_INPUT_SOURCE_NUM (64) 31 | #define HTML5_POINTER_MAX_NUM (256) 32 | #define HTML5_KEYCODE_MAX (320) 33 | 34 | // 入力ソース 35 | #define HTML5_INPUT_SOURCE_UNKNOWN (0) 36 | #define HTML5_INPUT_SOURCE_KEYBOARD (1) 37 | #define HTML5_INPUT_SOURCE_TOUCHSCREEN (2) 38 | #define HTML5_INPUT_SOURCE_MOUSE (3) 39 | #define HTML5_INPUT_SOURCE_JOYSTICK (4) 40 | 41 | 42 | 43 | // 構造体定義 -------------------------------------------------------------------- 44 | 45 | // 振動の環境依存情報 46 | struct INPUTVIBRATIONDATA_PF 47 | { 48 | int Dummy ; 49 | } ; 50 | 51 | // ゲームパッドの環境依存情報 52 | struct INPUTPADDATA_PF 53 | { 54 | int Dummy ; 55 | } ; 56 | 57 | // 一つの入力デバイスの入力情報 58 | struct INPUT_HTML5_DEVICE_INFO 59 | { 60 | int32_t Source ; 61 | int32_t DeviceId ; 62 | LONGLONG UpdateCount ; 63 | BYTE KeyState[ HTML5_KEYCODE_MAX ] ; 64 | int32_t ButtonState ; 65 | BYTE PointerState[ HTML5_POINTER_MAX_NUM ] ; 66 | float AxisX ; 67 | float AxisY ; 68 | float AxisZ ; 69 | float AxisRx ; 70 | float AxisRy ; 71 | float AxisRz ; 72 | float AxisHatX ; 73 | float AxisHatY ; 74 | float AxisLTrigger ; 75 | float AxisRTrigger ; 76 | float Wheel ; 77 | float VScroll ; 78 | float HScroll ; 79 | float Pressure ; 80 | float Size ; 81 | float TouchMajor ; 82 | float TouchMinor ; 83 | float ToolMajor ; 84 | float ToolMinor ; 85 | float Orientation ; 86 | float Tilt ; 87 | float Distance ; 88 | } ; 89 | 90 | // 入力システム用環境依存データ構造体型 91 | struct INPUTSYSTEMDATA_PF 92 | { 93 | LONGLONG UpdateCount ; 94 | int UseInputInfoNum ; 95 | INPUT_HTML5_DEVICE_INFO InputInfo[ HTML5_DEVICE_MAX_NUM ] ; 96 | int SourceNum[ HTML5_INPUT_SOURCE_NUM ] ; 97 | int SourceNoToInputInfoTable[ HTML5_INPUT_SOURCE_NUM ][ HTML5_DEVICE_MAX_NUM ] ; 98 | int GamePadSourceNum ; // ゲームパッドの数 99 | int GamePadSourceNoToInputInfoTable[ HTML5_DEVICE_MAX_NUM ] ; // ゲームパッドのナンバーと InputInfoTable の対応テーブル 100 | TOUCHINPUTDATA TouchInputData ; 101 | float MouseX ; // マウスカーソルのX座標 102 | float MouseY ; // マウスカーソルのY座標 103 | } ; 104 | 105 | // 内部大域変数宣言 -------------------------------------------------------------- 106 | 107 | // 関数プロトタイプ宣言----------------------------------------------------------- 108 | 109 | extern int GetHTML5DeviceIdToInputInfoNo( int32_t Source, int32_t DeviceId ) ; // デバイスIDから値を代入すべき入力情報番号を取得する 110 | extern int RefreshHTML5SourceNoToInputInfoTable( int32_t Source ) ; // 入力ソース番号と入力情報との対応テーブルを更新する 111 | extern int RefreshHTML5GamePadSourceNoToInputInfoTable( void ) ; // ゲームパッドの番号と入力情報との対応テーブルを更新する 112 | extern int32_t ProcessInputEvent( ) ; // 入力イベントを処理する 113 | 114 | #ifndef DX_NON_NAMESPACE 115 | 116 | } 117 | 118 | #endif // DX_NON_NAMESPACE 119 | 120 | #endif // DX_NON_INPUT 121 | 122 | #endif // DX_INPUTHTML5_H 123 | -------------------------------------------------------------------------------- /src/HTML5/DxInputKeyCodesHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用入力情報プログラムヘッダファイル 4 | // 5 | // Ver 3.21f 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_INPUT_KEYCODES_HTML5_H 10 | #define DX_INPUT_KEYCODES_HTML5_H 11 | 12 | #define HTML_KEYCODE_BACK (0x2E) 13 | #define HTML_KEYCODE_TAB (0x09) 14 | #define HTML_KEYCODE_RETURN (0x0D) 15 | 16 | #define HTML_KEYCODE_LSHIFT (0x10) 17 | #define HTML_KEYCODE_RSHIFT (0x10) 18 | #define HTML_KEYCODE_LCONTROL (0x11) 19 | #define HTML_KEYCODE_RCONTROL (0x11) 20 | #define HTML_KEYCODE_ESCAPE (0x1B) 21 | #define HTML_KEYCODE_SPACE (0x20) 22 | #define HTML_KEYCODE_PGUP (0x21) 23 | #define HTML_KEYCODE_PGDN (0x22) 24 | #define HTML_KEYCODE_END (0x23) 25 | #define HTML_KEYCODE_HOME (0x24) 26 | #define HTML_KEYCODE_LEFT (0x25) 27 | #define HTML_KEYCODE_UP (0x26) 28 | #define HTML_KEYCODE_RIGHT (0x27) 29 | #define HTML_KEYCODE_DOWN (0x28) 30 | #define HTML_KEYCODE_INSERT (0x2D) 31 | #define HTML_KEYCODE_DELETE (0x2E) 32 | 33 | #define HTML_KEYCODE_MINUS (0xBD) 34 | 35 | #define HTML_KEYCODE_YEN (0xDC) 36 | #define HTML_KEYCODE_PREVTRACK (0xDE) 37 | #define HTML_KEYCODE_PERIOD (0xBE) 38 | #define HTML_KEYCODE_SLASH (0xBF) 39 | #define HTML_KEYCODE_LALT (0x12) 40 | #define HTML_KEYCODE_RALT (0x12) 41 | #define HTML_KEYCODE_SCROLL (0x91) 42 | #define HTML_KEYCODE_SEMICOLON (0xBB) 43 | #define HTML_KEYCODE_COLON (0xBA) 44 | #define HTML_KEYCODE_LBRACKET (0xDB) 45 | #define HTML_KEYCODE_RBRACKET (0xDD) 46 | #define HTML_KEYCODE_AT (0xDB) 47 | #define HTML_KEYCODE_BACKSLASH (0xDD) 48 | #define HTML_KEYCODE_COMMA (0xBC) 49 | // #define HTML_KEYCODE_KANJI 50 | // #define HTML_KEYCODE_CONVERT 51 | // #define HTML_KEYCODE_NOCONVERT 52 | // #define HTML_KEYCODE_KANA 53 | // #define HTML_KEYCODE_APPS 54 | #define HTML_KEYCODE_CAPSLOCK (0x14) 55 | // #define HTML_KEYCODE_SYSRQ 56 | #define HTML_KEYCODE_PAUSE (0x13) 57 | #define HTML_KEYCODE_LWIN (0x5B) 58 | #define HTML_KEYCODE_RWIN (0x5C) 59 | 60 | #define HTML_KEYCODE_NUMLOCK (0x90) 61 | #define HTML_KEYCODE_NUMPAD0 (0x60) 62 | #define HTML_KEYCODE_NUMPAD1 (0x61) 63 | #define HTML_KEYCODE_NUMPAD2 (0x62) 64 | #define HTML_KEYCODE_NUMPAD3 (0x63) 65 | #define HTML_KEYCODE_NUMPAD4 (0x64) 66 | #define HTML_KEYCODE_NUMPAD5 (0x65) 67 | #define HTML_KEYCODE_NUMPAD6 (0x66) 68 | #define HTML_KEYCODE_NUMPAD7 (0x67) 69 | #define HTML_KEYCODE_NUMPAD8 (0x68) 70 | #define HTML_KEYCODE_NUMPAD9 (0x69) 71 | #define HTML_KEYCODE_MULTIPLY (0x6A) 72 | #define HTML_KEYCODE_ADD (0x6B) 73 | #define HTML_KEYCODE_SUBTRACT (0x6D) 74 | #define HTML_KEYCODE_DECIMAL (0x6E) 75 | #define HTML_KEYCODE_DIVIDE (0x6F) 76 | #define HTML_KEYCODE_NUMPADENTER (0x0D) 77 | 78 | #define HTML_KEYCODE_F1 (0x70) 79 | #define HTML_KEYCODE_F2 (0x71) 80 | #define HTML_KEYCODE_F3 (0x72) 81 | #define HTML_KEYCODE_F4 (0x73) 82 | #define HTML_KEYCODE_F5 (0x74) 83 | #define HTML_KEYCODE_F6 (0x75) 84 | #define HTML_KEYCODE_F7 (0x76) 85 | #define HTML_KEYCODE_F8 (0x77) 86 | #define HTML_KEYCODE_F9 (0x78) 87 | #define HTML_KEYCODE_F10 (0x79) 88 | #define HTML_KEYCODE_F11 (0x7A) 89 | #define HTML_KEYCODE_F12 (0x7B) 90 | 91 | #define HTML_KEYCODE_A (0x41) 92 | #define HTML_KEYCODE_B (0x42) 93 | #define HTML_KEYCODE_C (0x43) 94 | #define HTML_KEYCODE_D (0x44) 95 | #define HTML_KEYCODE_E (0x45) 96 | #define HTML_KEYCODE_F (0x46) 97 | #define HTML_KEYCODE_G (0x47) 98 | #define HTML_KEYCODE_H (0x48) 99 | #define HTML_KEYCODE_I (0x49) 100 | #define HTML_KEYCODE_J (0x4A) 101 | #define HTML_KEYCODE_K (0x4B) 102 | #define HTML_KEYCODE_L (0x4C) 103 | #define HTML_KEYCODE_M (0x4D) 104 | #define HTML_KEYCODE_N (0x4E) 105 | #define HTML_KEYCODE_O (0x4F) 106 | #define HTML_KEYCODE_P (0x50) 107 | #define HTML_KEYCODE_Q (0x51) 108 | #define HTML_KEYCODE_R (0x52) 109 | #define HTML_KEYCODE_S (0x53) 110 | #define HTML_KEYCODE_T (0x54) 111 | #define HTML_KEYCODE_U (0x55) 112 | #define HTML_KEYCODE_V (0x56) 113 | #define HTML_KEYCODE_W (0x57) 114 | #define HTML_KEYCODE_X (0x58) 115 | #define HTML_KEYCODE_Y (0x59) 116 | #define HTML_KEYCODE_Z (0x5A) 117 | 118 | #define HTML_KEYCODE_0 (0x30) 119 | #define HTML_KEYCODE_1 (0x31) 120 | #define HTML_KEYCODE_2 (0x32) 121 | #define HTML_KEYCODE_3 (0x33) 122 | #define HTML_KEYCODE_4 (0x34) 123 | #define HTML_KEYCODE_5 (0x35) 124 | #define HTML_KEYCODE_6 (0x36) 125 | #define HTML_KEYCODE_7 (0x37) 126 | #define HTML_KEYCODE_8 (0x38) 127 | #define HTML_KEYCODE_9 (0x39) 128 | 129 | #endif // DX_INPUT_KEYCODES_HTML5_H -------------------------------------------------------------------------------- /src/HTML5/DxLive2DCubism4HTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ Live2D Cubism4関係ヘッダファイル( HTML5 ) 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_LIVE2DCUBISM4HTML5_H 10 | #define DX_LIVE2DCUBISM4HTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_LIVE2D_CUBISM4 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxLib.h" 18 | #include "DxGraphicsHTML5.h" 19 | 20 | // #ifndef DX_NON_NAMESPACE 21 | // 22 | // namespace DxLib 23 | // { 24 | // 25 | // #endif // DX_NON_NAMESPACE 26 | 27 | // マクロ定義 -------------------------------------------------------------------- 28 | 29 | #define LIVE2D_CUBISM4_FUNC 30 | 31 | #define LIVE2D_SHADER_SetupMask_SetupMask 0 32 | #define LIVE2D_SHADER_NormalMasked_NormalMaskedPremultipliedAlpha 1 33 | #define LIVE2D_SHADER_NormalMasked_NormalMaskedInvertedPremultipliedAlpha 2 34 | #define LIVE2D_SHADER_NormalMasked_NormalMasked 3 35 | #define LIVE2D_SHADER_NormalMasked_NormalMaskedInverted 4 36 | #define LIVE2D_SHADER_Normal_NormalPremultipliedAlpha 5 37 | #define LIVE2D_SHADER_Normal_Normal 6 38 | #define LIVE2D_SHADER_Num 7 39 | 40 | // 構造体定義 -------------------------------------------------------------------- 41 | 42 | // Live2D Cubism4 システム環境依存用データ構造体 43 | struct LIVE2DCUBISM4SYSTEMDATA_PF 44 | { 45 | GRAPHICS_HTML5_SHADER Shader[ LIVE2D_SHADER_Num ] ; 46 | } ; 47 | 48 | // 内部大域変数宣言 -------------------------------------------------------------- 49 | 50 | // 関数プロトタイプ宣言----------------------------------------------------------- 51 | 52 | // Live2D Cubism4 で使用している全てのシェーダーを開放する 53 | extern int Live2D_Cubism4_HTML5_ReleaseShaderAll( void ) ; 54 | 55 | // #ifndef DX_NON_NAMESPACE 56 | // 57 | // } 58 | // 59 | // #endif // DX_NON_NAMESPACE 60 | 61 | #endif // DX_NON_LIVE2D_CUBISM4 62 | 63 | #endif // DX_LIVE2DCUBISM4HTML5_H 64 | -------------------------------------------------------------------------------- /src/HTML5/DxLogHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用ログプログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | // インクルード --------------------------------------------------------------- 15 | #ifndef DX_NON_LOG 16 | 17 | #include "DxLogHTML5.h" 18 | #include "DxFileHTML5.h" 19 | #include "DxSystemHTML5.h" 20 | #include "../DxStatic.h" 21 | #include "../DxLib.h" 22 | #include "../DxLog.h" 23 | #include "../DxBaseFunc.h" 24 | #include "../DxMemory.h" 25 | #include "../DxGraphics.h" 26 | #include "DxGraphicsHTML5.h" 27 | #include 28 | #include 29 | 30 | #ifndef DX_NON_NAMESPACE 31 | 32 | namespace DxLib 33 | { 34 | 35 | #endif // DX_NON_NAMESPACE 36 | 37 | // マクロ定義 ----------------------------------------------------------------- 38 | 39 | #define LOGI(...) ((void)printf(__VA_ARGS__)) 40 | #define LOGW(...) ((void)printf(__VA_ARGS__)) 41 | 42 | // 構造体宣言 ----------------------------------------------------------------- 43 | 44 | // データ定義 ----------------------------------------------------------------- 45 | 46 | // 関数宣言 ------------------------------------------------------------------- 47 | 48 | // プログラム ----------------------------------------------------------------- 49 | 50 | // ログファイルを初期化する処理の環境依存部分 51 | extern int LogFileInitialize_PF( const wchar_t *LogFilePath ) 52 | { 53 | // 既に初期化済みの場合は何もしない 54 | if( LogData.PF.InitializeFlag == TRUE ) 55 | { 56 | return 0 ; 57 | } 58 | 59 | // 初期化フラグを立てる 60 | LogData.PF.InitializeFlag = TRUE ; 61 | 62 | // エラーログファイルを再作成する 63 | if( LogData.PF.ExternalDataPath[ 0 ] != '\0' ) 64 | { 65 | char TempLogFilePath[ 1024 ] ; 66 | char LogFileNameUTF8[ 256 ] ; 67 | int Length ; 68 | 69 | ConvString( ( char * )LogData.LogFileName, -1, WCHAR_T_CHARCODEFORMAT, LogFileNameUTF8, sizeof( LogFileNameUTF8 ), DX_CHARCODEFORMAT_UTF8 ) ; 70 | 71 | Length = CL_strlen( DX_CHARCODEFORMAT_UTF8, LogData.PF.ExternalDataPath ) ; 72 | if( Length + CL_strlen( DX_CHARCODEFORMAT_UTF8, LogFileNameUTF8 ) + 1 < sizeof( TempLogFilePath ) - 16 ) 73 | { 74 | FILE *fp ; 75 | 76 | CL_strcpy( DX_CHARCODEFORMAT_UTF8, TempLogFilePath, LogData.PF.ExternalDataPath ) ; 77 | if( TempLogFilePath[ Length - 1 ] != '/' ) 78 | { 79 | TempLogFilePath[ Length ] = '/' ; 80 | TempLogFilePath[ Length + 1 ] = '\0' ; 81 | } 82 | CL_strcat( DX_CHARCODEFORMAT_UTF8, TempLogFilePath, LogFileNameUTF8 ) ; 83 | remove( TempLogFilePath ) ; 84 | fp = fopen( TempLogFilePath, "wb" ) ; 85 | if( fp != NULL ) 86 | { 87 | BYTE HEAD[ 3 ] = { 0xef, 0xbb, 0xbf } ; 88 | fwrite( &HEAD, 3, 1, fp ) ; 89 | 90 | fclose( fp ) ; 91 | } 92 | } 93 | } 94 | 95 | // 終了 96 | return 0 ; 97 | } 98 | 99 | // ログファイルの後始末の環境依存部分 100 | extern int LogFileTerminate_PF( void ) 101 | { 102 | return 0 ; 103 | } 104 | 105 | // ログファイルへ文字列を書き出す処理の環境依存部分 106 | extern int LogFileAdd_WCHAR_T_PF( const wchar_t *LogFilePath, const wchar_t *ErrorStr ) 107 | { 108 | char ErrorStrDefaultBuffer[ 1024 ] ; 109 | char *ErrorStrTempBuffer = NULL ; 110 | char *ErrorStrUseBuffer = NULL ; 111 | int ErrorStrUseBufferBytes ; 112 | int Bytes ; 113 | int StringBytes ; 114 | 115 | // UTF8 の文字列に変換する 116 | StringBytes = ( ( int )_WCSLEN( ErrorStr ) + 1 ) * sizeof( wchar_t ) ; 117 | if( ( size_t )StringBytes > sizeof( ErrorStrDefaultBuffer ) ) 118 | { 119 | ErrorStrTempBuffer = ( char * )DXALLOC( StringBytes ) ; 120 | if( ErrorStrTempBuffer == NULL ) 121 | { 122 | return -1 ; 123 | } 124 | ErrorStrUseBuffer = ErrorStrTempBuffer ; 125 | ErrorStrUseBufferBytes = StringBytes ; 126 | } 127 | else 128 | { 129 | ErrorStrUseBuffer = ErrorStrDefaultBuffer ; 130 | ErrorStrUseBufferBytes = sizeof( ErrorStrDefaultBuffer ) ; 131 | } 132 | 133 | Bytes = ConvString( ( char * )ErrorStr, -1, WCHAR_T_CHARCODEFORMAT, ErrorStrUseBuffer, ErrorStrUseBufferBytes, DX_CHARCODEFORMAT_UTF8 ) ; 134 | 135 | // エラーログファイルを開く 136 | if( Bytes > 1 && 137 | LogData.PF.ExternalDataPath[ 0 ] != '\0' ) 138 | { 139 | char TempLogFilePath[ 1024 ] ; 140 | char LogFileNameUTF8[ 256 ] ; 141 | int Length ; 142 | 143 | ConvString( ( char * )LogData.LogFileName, -1, WCHAR_T_CHARCODEFORMAT, LogFileNameUTF8, sizeof( LogFileNameUTF8 ), DX_CHARCODEFORMAT_UTF8 ) ; 144 | 145 | Length = CL_strlen( DX_CHARCODEFORMAT_UTF8, LogData.PF.ExternalDataPath ) ; 146 | if( Length + CL_strlen( DX_CHARCODEFORMAT_UTF8, LogFileNameUTF8 ) + 1 < sizeof( TempLogFilePath ) - 16 ) 147 | { 148 | FILE *fp ; 149 | 150 | CL_strcpy( DX_CHARCODEFORMAT_UTF8, TempLogFilePath, LogData.PF.ExternalDataPath ) ; 151 | if( TempLogFilePath[ Length - 1 ] != '/' ) 152 | { 153 | TempLogFilePath[ Length ] = '/' ; 154 | TempLogFilePath[ Length + 1 ] = '\0' ; 155 | } 156 | CL_strcat( DX_CHARCODEFORMAT_UTF8, TempLogFilePath, LogFileNameUTF8 ) ; 157 | fp = fopen( TempLogFilePath, "ab" ) ; 158 | if( fp != NULL ) 159 | { 160 | // エラーログファイルに書き出す 161 | fwrite( ErrorStrUseBuffer, ( DWORD )( Bytes - 1 ), 1, fp ) ; 162 | 163 | // ファイルを閉じる 164 | fclose( fp ) ; 165 | } 166 | } 167 | } 168 | 169 | // コンソールにも出力 170 | LOGI( "%s", ErrorStrUseBuffer ) ; 171 | 172 | if( ErrorStrTempBuffer != NULL ) 173 | { 174 | DXFREE( ErrorStrTempBuffer ) ; 175 | ErrorStrTempBuffer = NULL ; 176 | } 177 | 178 | // 終了 179 | return 0 ; 180 | } 181 | 182 | 183 | // ログ機能の初期化を行うかどうかを取得する 184 | extern int IsInitializeLog( void ) 185 | { 186 | return TRUE ; 187 | } 188 | 189 | 190 | #ifndef DX_NON_NAMESPACE 191 | 192 | } 193 | 194 | #endif // DX_NON_NAMESPACE 195 | 196 | #endif // DX_NON_LOG 197 | 198 | -------------------------------------------------------------------------------- /src/HTML5/DxLogHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用ログプログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_LOGHTML5_H 10 | #define DX_LOGHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | 15 | #ifndef DX_NON_LOG 16 | 17 | #ifndef DX_NON_NAMESPACE 18 | 19 | namespace DxLib 20 | { 21 | 22 | #endif // DX_NON_NAMESPACE 23 | 24 | // マクロ定義 -------------------------------------------------------------------- 25 | 26 | // 構造体定義 -------------------------------------------------------------------- 27 | 28 | // ログ処理用環境依存データ構造体 29 | struct LOGDATA_PF 30 | { 31 | int InitializeFlag ; 32 | char ExternalDataPath[ 2048 ] ; 33 | FILE *fp ; 34 | } ; 35 | 36 | // テーブル----------------------------------------------------------------------- 37 | 38 | // 内部大域変数宣言 -------------------------------------------------------------- 39 | 40 | // 関数プロトタイプ宣言----------------------------------------------------------- 41 | 42 | #ifndef DX_NON_NAMESPACE 43 | 44 | } 45 | 46 | #endif // DX_NON_NAMESPACE 47 | 48 | #endif // DX_NON_LOG 49 | 50 | #endif // DX_LOGHTML5_H 51 | -------------------------------------------------------------------------------- /src/HTML5/DxMaskHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用マスクデータ管理プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_MASKHTML5_H 10 | #define DX_MASKHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_MASK 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxLib.h" 18 | #include "../DxGraphics.h" 19 | #include "../DxArchive_.h" 20 | #include 21 | 22 | #ifndef DX_NON_NAMESPACE 23 | 24 | namespace DxLib 25 | { 26 | 27 | #endif // DX_NON_NAMESPACE 28 | 29 | // マクロ定義 -------------------------------------------------------------------- 30 | 31 | #define MASKHTML5 MaskManageData_HTML5 32 | 33 | // 構造体定義 -------------------------------------------------------------------- 34 | 35 | // HTML5 用のマスク処理情報構造体 36 | struct MASKMANAGEDATA_HTML5 37 | { 38 | int MaskTextureSizeX ; // マスクテクスチャのサイズ 39 | int MaskTextureSizeY ; 40 | 41 | GLuint MaskScreenFrameBuffer ; // マスク処理用仮画面フレームバッファ 42 | GLuint MaskScreenTextureBuffer ; // マスク処理用仮画面テクスチャバッファ 43 | GLuint MaskScreenDepthBuffer ; // マスク処理用仮画面深度バッファ 44 | 45 | GLuint MaskScreenOldFrameBuffer ; // 古いマスク処理用仮画面フレームバッファ 46 | GLuint MaskScreenOldTextureBuffer ; // 古いマスク処理用仮画面テクスチャバッファ 47 | GLuint MaskScreenOldDepthBuffer ; // 古いマスク処理用仮画面深度バッファ 48 | 49 | GLuint MaskImageTextureBuffer ; // マスクイメージテクスチャバッファ 50 | 51 | GLuint DestTargetFrameBuffer ; // 描画対象のフレームバッファ 52 | GLuint DestTargetTextureBuffer ; // 描画対象のテクスチャバッファ 53 | GLuint DestTargetDepthBuffer ; // 描画対象の深度バッファ 54 | GLuint DestTargetWidth ; // 描画対象の幅 55 | GLuint DestTargetHeight ; // 描画対象の高さ 56 | } ; 57 | 58 | // 内部大域変数宣言 -------------------------------------------------------------- 59 | 60 | extern MASKMANAGEDATA_HTML5 MaskManageData_HTML5 ; 61 | 62 | // 関数プロトタイプ宣言----------------------------------------------------------- 63 | 64 | #ifndef DX_NON_NAMESPACE 65 | 66 | } 67 | 68 | #endif // DX_NON_NAMESPACE 69 | 70 | #endif // DX_NON_MASK 71 | 72 | #endif // DX_MASKHTML5_H 73 | -------------------------------------------------------------------------------- /src/HTML5/DxMemoryHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用メモリ関係プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | // インクルード --------------------------------------------------------------- 13 | #include "../DxMemory.h" 14 | #include "../DxLog.h" 15 | #include "../DxBaseFunc.h" 16 | #include "DxMemoryHTML5.h" 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #ifndef DX_NON_NAMESPACE 23 | 24 | using namespace DxLib ; 25 | 26 | namespace DxLib 27 | { 28 | 29 | #endif // DX_NON_NAMESPACE 30 | 31 | // マクロ定義 ----------------------------------------------------------------- 32 | 33 | // 構造体宣言 ----------------------------------------------------------------- 34 | 35 | // データ定義 ----------------------------------------------------------------- 36 | 37 | // 関数宣言 ------------------------------------------------------------------- 38 | 39 | // プログラム ----------------------------------------------------------------- 40 | 41 | // メモリ処理の初期化を行う関数の環境依存処理 42 | extern int MemoryInitialize_PF( void ) 43 | { 44 | return 0 ; 45 | } 46 | 47 | // メモリ処理の後始末を行う関数の環境依存処理 48 | extern int MemoryTerminate_PF( void ) 49 | { 50 | return 0 ; 51 | } 52 | 53 | // メモリ処理の周期的処理の環境依存処理 54 | extern int MemoryProcess_PF( void ) 55 | { 56 | return 0 ; 57 | } 58 | 59 | // メモリのエラーチェックの環境依存処理 60 | extern int MemoryErrorCheck_PF( void ) 61 | { 62 | return 0 ; 63 | } 64 | 65 | // HTML5 のヒープ用のメモリ領域を確保するためのコールバック関数群の AutoAlloc_CreateHeapCallback 66 | extern int NormalMemory_AutoAlloc_CreateHeapCallback_PF( int Param, void *Buffer, ALLOCMEM_SIZE_TYPE Size ) 67 | { 68 | PLATFORMHEAP_HTML5 * PlatformHeap = ( PLATFORMHEAP_HTML5 * )Buffer ; 69 | 70 | // バッファサイズチェック 71 | if( sizeof( PLATFORMHEAP_HTML5 ) > ALLOCHEAP_CALLBACK_INFO_SIZE ) 72 | { 73 | *( ( DWORD * )0x00000000 ) = 0xffffffff ; 74 | } 75 | 76 | // メモリを確保 77 | PlatformHeap->AllocAddress = malloc( Size ) ; 78 | if( PlatformHeap->AllocAddress == NULL ) 79 | { 80 | return -1 ; 81 | } 82 | PlatformHeap->AllocSize = Size ; 83 | 84 | return 0 ; 85 | } 86 | 87 | // 環境依存の一般的なヒープ用のメモリ領域を確保するためのコールバック関数群の AutoAlloc_GetHeapAddressCallback 88 | extern void * NormalMemory_AutoAlloc_GetHeapAddressCallback_PF( int Param, void *Buffer ) 89 | { 90 | PLATFORMHEAP_HTML5 * PlatformHeap = ( PLATFORMHEAP_HTML5 * )Buffer ; 91 | 92 | return PlatformHeap->AllocAddress ; 93 | } 94 | 95 | // 環境依存の一般的なヒープ用のメモリ領域を確保するためのコールバック関数群の AutoAlloc_GetHeapSizeCallback 96 | extern ALLOCMEM_SIZE_TYPE NormalMemory_AutoAlloc_GetHeapSizeCallback_PF( int Param, void *Buffer ) 97 | { 98 | PLATFORMHEAP_HTML5 * PlatformHeap = ( PLATFORMHEAP_HTML5 * )Buffer ; 99 | 100 | return ( ALLOCMEM_SIZE_TYPE )PlatformHeap->AllocSize ; 101 | } 102 | 103 | // 環境依存の一般的なヒープ用のメモリ領域を確保するためのコールバック関数群の AutoAlloc_DeleteHeapCallback 104 | extern int NormalMemory_AutoAlloc_DeleteHeapCallback_PF( int Param, void *Buffer ) 105 | { 106 | PLATFORMHEAP_HTML5 * PlatformHeap = ( PLATFORMHEAP_HTML5 * )Buffer ; 107 | 108 | // メモリを解放 109 | free( PlatformHeap->AllocAddress ) ; 110 | 111 | return 0 ; 112 | } 113 | 114 | // 確保しているメモリを列挙する関数の環境依存処理 115 | extern int DxDumpAlloc_PF( void ) 116 | { 117 | return 0 ; 118 | } 119 | 120 | 121 | 122 | #ifndef DX_NON_NAMESPACE 123 | 124 | } 125 | 126 | #endif // DX_NON_NAMESPACE 127 | 128 | -------------------------------------------------------------------------------- /src/HTML5/DxMemoryHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用メモリ関係プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_MEMORYHTML5_H 10 | #define DX_MEMORYHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | #include "../DxHeap.h" 15 | 16 | #ifndef DX_NON_NAMESPACE 17 | 18 | namespace DxLib 19 | { 20 | 21 | #endif // DX_NON_NAMESPACE 22 | 23 | // マクロ定義 -------------------------------------------------------------------- 24 | 25 | #define DXMEMORY_SMALLHEAP_UNITSIZE ( 4 * 1024 * 1024) // 小さいメモリ確保用のヒープの単位確保サイズ 26 | #define DXMEMORY_BIGHEAP_UNITSIZE (32 * 1024 * 1024) // 大きいメモリ確保用のヒープの単位確保サイズ 27 | #define DXMEMORY_SMALL_MAX_SIZE (64 * 1024) // 小さいメモリ確保用のヒープを使用する最大サイズ 28 | 29 | // 構造体定義 -------------------------------------------------------------------- 30 | 31 | #ifndef DX_NON_NAMESPACE 32 | 33 | } 34 | 35 | #endif // DX_NON_NAMESPACE 36 | 37 | // HTML5用ヒープの情報 38 | struct PLATFORMHEAP_HTML5 39 | { 40 | void * AllocAddress ; // 確保したメモリ領域のアドレス 41 | size_t AllocSize ; // 確保したメモリ領域のサイズ 42 | } ; 43 | 44 | // テーブル----------------------------------------------------------------------- 45 | 46 | // 内部大域変数宣言 -------------------------------------------------------------- 47 | 48 | // 関数プロトタイプ宣言----------------------------------------------------------- 49 | 50 | #ifndef DX_NON_NAMESPACE 51 | 52 | namespace DxLib 53 | { 54 | 55 | #endif // DX_NON_NAMESPACE 56 | 57 | 58 | #ifndef DX_NON_NAMESPACE 59 | 60 | } 61 | 62 | #endif // DX_NON_NAMESPACE 63 | 64 | #endif // DX_MEMORYHTML5_H 65 | -------------------------------------------------------------------------------- /src/HTML5/DxModelHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用モデルデータ制御プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_MODELHTML5_H 10 | #define DX_MODELHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | 15 | #ifndef DX_NON_MODEL 16 | 17 | #include "../DxLib.h" 18 | #include "../DxModel.h" 19 | #include 20 | 21 | #ifndef DX_NON_NAMESPACE 22 | 23 | namespace DxLib 24 | { 25 | 26 | #endif // DX_NON_NAMESPACE 27 | 28 | // マクロ定義 -------------------------------------------------------------------- 29 | 30 | // 構造体定義 -------------------------------------------------------------------- 31 | 32 | // HTML5用 モデルデータ管理用構造体 33 | struct MV1_MODEL_MANAGE_HTML5 34 | { 35 | void * CommonBuffer ; // 主にシェイプ座標の更新で使用する汎用バッファ 36 | int CommonBufferSize ; // 主にシェイプ座標の更新で使用する汎用バッファのサイズ 37 | 38 | int EnableLightNum ; // 有効なライトの数 39 | } ; 40 | 41 | // HTML5用 頂点バッファ環境依存情報 42 | struct MV1_VERTEXBUFFER_PF 43 | { 44 | GLuint VertexBufferObject ; // 頂点バッファ 45 | GLuint IndexBufferObject ; // インデックスバッファ 46 | } ; 47 | 48 | // HTML5用 トライアングルリスト基データ環境依存情報 49 | struct MV1_TRIANGLE_LIST_BASE_PF 50 | { 51 | BYTE SkinFreeBoneVertexBufferUpdate ; // 9ボーン以上のスキニングメッシュ処理用頂点データを更新したかどうか( TRUE:更新済み FALSE:未更新 ) 52 | void * SkinFreeBoneVertexBuffer ; // 9ボーン以上のスキニングメッシュ処理用頂点データ 53 | } ; 54 | 55 | // HTML5用 トライアングルリスト環境依存情報 56 | struct MV1_TRIANGLE_LIST_PF 57 | { 58 | void * SkinFreeBoneVertexPositionBuffer ; // 9ボーン以上のスキニングメッシュ処理用頂点座標データ 59 | GLuint VertexBufferObject ; // 頂点バッファ 60 | } ; 61 | 62 | // 内部大域変数宣言 -------------------------------------------------------------- 63 | 64 | extern MV1_MODEL_MANAGE_HTML5 MV1Man_HTML5 ; 65 | 66 | // 関数プロトタイプ宣言----------------------------------------------------------- 67 | 68 | // 汎用バッファ関数 69 | extern int MV1_HTML5_CommonBuffer_Setup( int Size ) ; // 指定サイズの汎用バッファの準備を行う 70 | extern int MV1_HTML5_CommonBuffer_Terminate( void ) ; // 汎用バッファの後始末を行う 71 | 72 | #ifndef DX_NON_NAMESPACE 73 | 74 | } 75 | 76 | #endif // DX_NON_NAMESPACE 77 | 78 | #endif // DX_NON_MODEL 79 | 80 | #endif // DX_MODELHTML5_H 81 | -------------------------------------------------------------------------------- /src/HTML5/DxMovieHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用動画プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_MOVIE 15 | 16 | // インクルード---------------------------------------------------------------- 17 | #include "DxMovieHTML5.h" 18 | #include "DxFileHTML5.h" 19 | #include "DxMemoryHTML5.h" 20 | #include "../DxLog.h" 21 | #include "../DxMovie.h" 22 | #include "../DxSystem.h" 23 | #include "../DxMemory.h" 24 | #include "../DxBaseFunc.h" 25 | // #include 26 | 27 | #ifndef DX_NON_NAMESPACE 28 | 29 | namespace DxLib 30 | { 31 | 32 | #endif // DX_NON_NAMESPACE 33 | 34 | // マクロ定義------------------------------------------------------------------ 35 | 36 | // 型定義---------------------------------------------------------------------- 37 | 38 | // データ宣言------------------------------------------------------------------ 39 | 40 | // 関数プロトタイプ宣言 ------------------------------------------------------- 41 | 42 | // プログラム------------------------------------------------------------------ 43 | 44 | // ムービー関連の管理処理の初期化の環境依存処理 45 | extern int InitializeMovieManage_PF( void ) 46 | { 47 | return 0 ; 48 | } 49 | 50 | // ムービー関連の管理処理の後始末の環境依存処理 51 | extern int TerminateMovieManage_PF( void ) 52 | { 53 | return 0 ; 54 | } 55 | 56 | // OpenMovie のグローバル変数にアクセスしないバージョンの環境依存処理 57 | extern int OpenMovie_UseGParam_PF( MOVIEGRAPH * Movie, OPENMOVIE_GPARAM *GParam, const wchar_t *FileName, int *Width, int *Height, int SurfaceMode, int ImageSizeGetOnly, int ASyncThread ) 58 | { 59 | return -1 ; 60 | } 61 | 62 | // ムービー用のグラフィックハンドル作成用のパラメータをカスタマイズする 63 | extern int OpenMovie_CustomGraphHandleGParam_PF( MOVIEGRAPH * Movie, struct SETUP_GRAPHHANDLE_GPARAM *InitGraphHandleGParam ) 64 | { 65 | return 0 ; 66 | } 67 | 68 | // ムービーハンドルの後始末を行う 69 | extern int TerminateMovieHandle_PF( HANDLEINFO *HandleInfo ) 70 | { 71 | // 正常終了 72 | return 0 ; 73 | } 74 | 75 | // ムービーの再生を開始する処理の環境依存処理 76 | extern int PlayMovie__PF( MOVIEGRAPH * Movie, int PlayType, int SysPlay ) 77 | { 78 | // 正常終了 79 | return 0 ; 80 | } 81 | 82 | // ムービーの再生をストップする処理の環境依存処理 83 | extern int PauseMovie_PF( MOVIEGRAPH * Movie, int SysPause ) 84 | { 85 | // 正常終了 86 | return 0 ; 87 | } 88 | 89 | // ムービーの再生位置を設定する(ミリ秒単位)処理の環境依存処理 90 | extern int SeekMovie_PF( MOVIEGRAPH * Movie, int Time ) 91 | { 92 | // 正常終了 93 | return 0 ; 94 | } 95 | 96 | // ムービーの再生速度を設定する( 1.0 = 等倍速 2.0 = 2倍速 )処理の環境依存処理 97 | extern int SetPlaySpeedRateMovie_PF( MOVIEGRAPH * Movie, double SpeedRate ) 98 | { 99 | // 正常終了 100 | return 0 ; 101 | } 102 | 103 | // ムービーの再生状態を得る処理の環境依存処理 104 | extern int GetMovieState_PF( MOVIEGRAPH * Movie ) 105 | { 106 | return Movie->PlayFlag ; 107 | } 108 | 109 | // ムービーのボリュームをセットする(0〜10000)処理の環境依存処理 110 | extern int SetMovieVolume_PF( MOVIEGRAPH * Movie, int Volume ) 111 | { 112 | // 正常終了 113 | return 0 ; 114 | } 115 | 116 | // ムービーの基本イメージデータを取得する処理の環境依存処理 117 | extern BASEIMAGE *GetMovieBaseImage_PF( MOVIEGRAPH * Movie, int *ImageUpdateFlag, int ImageUpdateFlagSetOnly ) 118 | { 119 | return NULL ; 120 | } 121 | 122 | // ムービーの総フレーム数を得る 123 | extern int GetMovieTotalFrame_PF( MOVIEGRAPH * Movie ) 124 | { 125 | return -1 ; 126 | } 127 | 128 | // ムービーの再生位置を取得する(ミリ秒単位)処理の環境依存処理 129 | extern int TellMovie_PF( MOVIEGRAPH * Movie ) 130 | { 131 | // return Movie->PF.PlayTime / 1000 ; 132 | return 0 ; 133 | } 134 | 135 | // ムービーの再生位置を取得する(フレーム単位)処理の環境依存処理 136 | extern int TellMovieToFrame_PF( MOVIEGRAPH * Movie ) 137 | { 138 | // return Movie->PF.FrameCount < 0 ? 0 : Movie->PF.FrameCount ; 139 | return 0 ; 140 | } 141 | 142 | // ムービーの再生位置を設定する(フレーム単位)処理の環境依存処理 143 | extern int SeekMovieToFrame_PF( MOVIEGRAPH * Movie, int Frame ) 144 | { 145 | // 正常終了 146 | return 0 ; 147 | } 148 | 149 | // ムービーの1フレームあたりの時間を得る処理の環境依存処理 150 | extern LONGLONG GetOneFrameTimeMovie_PF( MOVIEGRAPH * Movie ) 151 | { 152 | return ( LONGLONG )( 1000000.0f / 29.970f ) ; 153 | } 154 | 155 | 156 | 157 | 158 | 159 | // ムービーの更新を行う処理の環境依存処理 160 | extern int UpdateMovie_PF( MOVIEGRAPH * Movie, int AlwaysFlag ) 161 | { 162 | // 正常終了 163 | return 0 ; 164 | } 165 | 166 | 167 | 168 | #ifndef DX_NON_NAMESPACE 169 | 170 | } 171 | 172 | #endif // DX_NON_NAMESPACE 173 | 174 | #endif // DX_NON_MOVIE 175 | 176 | -------------------------------------------------------------------------------- /src/HTML5/DxMovieHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用動画プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_MOVIEHTML5_H 10 | #define DX_MOVIEHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_MOVIE 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxLib.h" 18 | #include "../DxFile.h" 19 | //#include 20 | 21 | #ifndef DX_NON_NAMESPACE 22 | 23 | namespace DxLib 24 | { 25 | 26 | #endif // DX_NON_NAMESPACE 27 | 28 | // マクロ定義 -------------------------------------------------------------------- 29 | 30 | // 構造体定義 -------------------------------------------------------------------- 31 | 32 | // ムービーグラフィック環境依存データ型 33 | struct MOVIEGRAPH_PF 34 | { 35 | int Dummy ; 36 | } ; 37 | 38 | // ムービーデータ環境依存管理構造体 39 | struct MOVIEGRAPHMANAGE_PF 40 | { 41 | int Dummy ; 42 | } ; 43 | 44 | // 内部大域変数宣言 -------------------------------------------------------------- 45 | 46 | // 関数プロトタイプ宣言----------------------------------------------------------- 47 | 48 | #ifndef DX_NON_NAMESPACE 49 | 50 | } 51 | 52 | #endif // DX_NON_NAMESPACE 53 | 54 | #endif // DX_NON_MOVIE 55 | 56 | #endif // DX_MOVIEHTML5_H 57 | -------------------------------------------------------------------------------- /src/HTML5/DxNetworkHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用通信プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | // インクルード --------------------------------------------------------------- 13 | #include "DxNetworkHTML5.h" 14 | 15 | #ifndef DX_NON_NAMESPACE 16 | 17 | namespace DxLib 18 | { 19 | 20 | #endif // DX_NON_NAMESPACE 21 | 22 | // マクロ定義 ----------------------------------------------------------------- 23 | 24 | // 構造体宣言 ----------------------------------------------------------------- 25 | 26 | // データ定義 ----------------------------------------------------------------- 27 | 28 | // 関数宣言 ------------------------------------------------------------------- 29 | 30 | // プログラム ----------------------------------------------------------------- 31 | 32 | #ifndef DX_NON_NAMESPACE 33 | 34 | } 35 | 36 | #endif // DX_NON_NAMESPACE 37 | 38 | -------------------------------------------------------------------------------- /src/HTML5/DxNetworkHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用通信プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_NETWORKHTML5_H 10 | #define DX_NETWORKHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | 15 | #ifndef DX_NON_NAMESPACE 16 | 17 | namespace DxLib 18 | { 19 | 20 | #endif // DX_NON_NAMESPACE 21 | 22 | // マクロ定義 -------------------------------------------------------------------- 23 | 24 | // 構造体定義 -------------------------------------------------------------------- 25 | 26 | // テーブル----------------------------------------------------------------------- 27 | 28 | // 内部大域変数宣言 -------------------------------------------------------------- 29 | 30 | // 関数プロトタイプ宣言----------------------------------------------------------- 31 | 32 | #ifndef DX_NON_NAMESPACE 33 | 34 | } 35 | 36 | #endif // DX_NON_NAMESPACE 37 | 38 | #endif // DX_NETWORKHTML5_H -------------------------------------------------------------------------------- /src/HTML5/DxShaderCodeBin_Live2D_Cubism4_HTML5.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ Live2D Cubism4 用シェーダーバイナリ 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_LIVE2D_CUBISM4 15 | 16 | // インクルード---------------------------------------------------------------- 17 | #include "../DxLib.h" 18 | #include "../DxStatic.h" 19 | 20 | // データ定義------------------------------------------------------------------ 21 | 22 | //#ifndef DX_NON_NAMESPACE 23 | // 24 | //namespace DxLib 25 | //{ 26 | // 27 | //#endif // DX_NON_NAMESPACE 28 | 29 | // シェーダーファイルを圧縮したもの 30 | BYTE DxShaderCodeBin_Live2D_Cubism4_HTML5[] = 31 | { 32 | 0x6c,0x1c,0x00,0x00,0x6b,0x06,0x00,0x00,0xfe,0x44,0x58,0x08,0x00,0x3c,0x06,0x00, 33 | 0x00,0x40,0x00,0xfe,0x10,0x00,0x30,0x16,0xfe,0x10,0x07,0x04,0x03,0xfe,0x10,0x07, 34 | 0x1c,0x06,0xfe,0x10,0x07,0xa4,0x03,0x00,0x00,0xfe,0x00,0x12,0x0a,0xfe,0x18,0x27, 35 | 0xfe,0x20,0x00,0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64, 36 | 0x69,0x75,0x6d,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x76,0x61,0x72,0x79, 37 | 0x69,0x6e,0x67,0xfe,0x28,0x16,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x74,0x65,0x78, 38 | 0x43,0x6f,0x6f,0x72,0x64,0xfe,0x30,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x20,0xfe, 39 | 0x00,0x20,0x34,0x20,0x76,0x5f,0x63,0x6c,0x69,0x70,0x50,0x6f,0x73,0x3b,0x0a,0x75, 40 | 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6c,0x6f,0x77,0xfe,0x00,0x1e,0xfe,0x10,0x1f, 41 | 0x75,0x5f,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x46,0x6c,0x61,0x67,0xfe,0xa8,0x23, 42 | 0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0xfe,0x30,0x21,0x73,0x61,0x6d,0x70, 43 | 0x6c,0x65,0x72,0x32,0x44,0x20,0x75,0x44,0x69,0x66,0x4d,0x61,0x70,0x54,0x65,0x78, 44 | 0xfe,0x88,0x1d,0x4e,0x72,0x6d,0xfe,0x20,0x1d,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61, 45 | 0x69,0x6e,0x28,0x20,0xfe,0x08,0x0a,0x29,0x0a,0x7b,0x0a,0xfe,0x40,0xcf,0x34,0x20, 46 | 0x20,0x63,0x6f,0x6c,0x5f,0xfe,0x00,0x41,0x61,0x73,0x6b,0xfe,0x00,0x7f,0x20,0x3d, 47 | 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44,0x28,0xfe,0x38,0x69,0x20,0x2c, 48 | 0xfe,0x38,0xfa,0x20,0x29,0x20,0x2a,0xfe,0x50,0xa4,0xfe,0x08,0x3a,0xfe,0x30,0x00, 49 | 0xfe,0x38,0x54,0x2e,0x72,0x67,0x62,0x20,0x3d,0xfe,0x68,0x11,0x20,0x2a,0xfe,0x48, 50 | 0x12,0x61,0x20,0x3b,0xfe,0x68,0x98,0x6c,0x69,0x70,0x4d,0xfe,0x20,0x95,0xfe,0x08, 51 | 0x98,0x28,0x20,0x31,0x2e,0x30,0x20,0x2d,0xfe,0x48,0xa0,0xfe,0x28,0xec,0xfe,0x00, 52 | 0x9f,0xfe,0x19,0x79,0x01,0x2e,0x78,0x79,0x20,0x2f,0xfe,0x38,0x0e,0x77,0x20,0x29, 53 | 0xfe,0x18,0xb1,0xfe,0x49,0x7a,0x01,0xfe,0x51,0xef,0x01,0x20,0xfe,0x00,0x87,0x56, 54 | 0x61,0x6c,0xfe,0x28,0xc3,0x3d,0xfe,0x28,0x81,0x2e,0x72,0x20,0x2b,0xfe,0x30,0x0c, 55 | 0x67,0xfe,0x40,0x0c,0x62,0xfe,0x40,0x0c,0x61,0xfe,0xc1,0x07,0x01,0xfe,0x20,0x53, 56 | 0xfe,0x38,0x11,0x2a,0xfe,0x20,0x73,0x3b,0x20,0xfe,0x60,0x38,0x67,0x6c,0x5f,0x46, 57 | 0x72,0x61,0x67,0xfe,0x09,0x5d,0x01,0xfe,0x68,0x38,0x3b,0x20,0x0a,0x7d,0x0a,0xfe, 58 | 0xcd,0x13,0xb7,0x02,0xfe,0x20,0xd1,0xfe,0x20,0x7b,0x29,0xfe,0x68,0x41,0xfe,0xd1, 59 | 0xc0,0x02,0xfe,0x65,0x08,0xbf,0x02,0xfe,0x99,0xbc,0x02,0xfe,0xd9,0xbb,0x02,0xfe, 60 | 0xb9,0x77,0x02,0xfe,0x4d,0x03,0x74,0x02,0xfe,0x6d,0x02,0x71,0x02,0xfe,0xdd,0x01, 61 | 0x6e,0x02,0xfe,0xcd,0x11,0x6b,0x02,0xfe,0x15,0x01,0x92,0x07,0xfe,0x71,0x62,0x02, 62 | 0xfe,0xbd,0x01,0x63,0x02,0xfe,0xe5,0x01,0x1f,0x02,0xfe,0xf1,0x01,0x02,0x63,0xfe, 63 | 0x18,0xb4,0xfe,0x85,0x01,0xf9,0x01,0xfe,0x58,0xf7,0xfe,0x00,0x4f,0x28,0xfe,0x10, 64 | 0x50,0xfe,0x09,0x10,0x07,0xfe,0x09,0x0f,0x07,0x6f,0x72,0x2e,0x61,0x2c,0xfe,0x09, 65 | 0x58,0x01,0xfe,0x00,0x09,0x20,0x29,0xfe,0x11,0xa1,0x08,0xfe,0x6d,0x04,0x13,0x01, 66 | 0xfe,0x58,0xca,0xfe,0x7d,0x01,0x0d,0x01,0xfe,0x85,0x02,0x4b,0x04,0x6d,0x79,0xfe, 67 | 0x2d,0x03,0x49,0x04,0xfe,0xc9,0x29,0x02,0xfe,0x08,0xc6,0x20,0x69,0x73,0x49,0x6e, 68 | 0x73,0x69,0x64,0x65,0x20,0x3d,0xfe,0x09,0x01,0x03,0x73,0x74,0x65,0x70,0x28,0xfe, 69 | 0x40,0x62,0x2e,0xfe,0x09,0x21,0x01,0xfe,0x08,0xb3,0x2e,0x78,0xfe,0x09,0xcd,0x03, 70 | 0xfe,0x10,0x0b,0x77,0x20,0x29,0x0a,0x20,0x2a,0xfe,0x78,0x2f,0x79,0xfe,0x30,0x2f, 71 | 0xfe,0x11,0xfd,0x03,0xfe,0x78,0x2f,0xfe,0x58,0x00,0xfe,0x88,0x5f,0x2c,0xfe,0x48, 72 | 0x55,0x7a,0xfe,0xf8,0x3e,0xfe,0x48,0x6e,0xfe,0x50,0x3e,0x77,0xfe,0x09,0x43,0x06, 73 | 0xfe,0x59,0x0f,0x02,0xfe,0x49,0x6c,0x01,0x20,0x2a,0xfe,0x05,0x01,0x1f,0x02,0x2e, 74 | 0x61,0x20,0x2a,0xfe,0x29,0x32,0x01,0xfe,0x11,0x07,0x04,0x61,0x74,0x74,0x72,0x69, 75 | 0x62,0x75,0x74,0x65,0xfe,0x41,0xe7,0x01,0x33,0x20,0x61,0xfe,0x09,0xe4,0x01,0xfe, 76 | 0x30,0x1c,0xfe,0x49,0x25,0x02,0x61,0x54,0x65,0x78,0x55,0x56,0x30,0xfe,0x31,0x22, 77 | 0x02,0x20,0xfe,0xf1,0x45,0x02,0x20,0xfe,0xe9,0x93,0x06,0xfe,0x58,0x21,0x75,0x5f, 78 | 0x6d,0x61,0x74,0x72,0x69,0x78,0x5b,0x20,0x34,0x20,0x5d,0xfe,0xb8,0x25,0xfe,0x11, 79 | 0x39,0x05,0xfe,0x38,0x29,0xfe,0x89,0x35,0x02,0xfe,0x10,0x34,0xfe,0x08,0x32,0xfe, 80 | 0x00,0xda,0x34,0x3b,0x0a,0xfe,0x10,0x07,0x2e,0x78,0x20,0x3d,0xfe,0x08,0x09,0x2e, 81 | 0x78,0xfe,0x28,0x12,0x79,0xfe,0x20,0x12,0x79,0xfe,0x28,0x12,0x7a,0xfe,0x20,0x12, 82 | 0x7a,0xfe,0x28,0x12,0x77,0x20,0x3d,0xfe,0x01,0x47,0x06,0xfe,0x11,0x97,0x01,0x50, 83 | 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0xfe,0x08,0x4e,0x64,0x6f,0x74,0x28,0xfe,0x10, 84 | 0x24,0xfe,0x01,0xc5,0x01,0xfe,0x20,0xc5,0x30,0x20,0x5d,0xfe,0x21,0xc5,0x01,0xfe, 85 | 0x28,0x2d,0xfe,0x00,0x69,0x2d,0xfe,0x98,0x2f,0x31,0xfe,0x78,0x2f,0xfe,0x00,0x86, 86 | 0xfe,0x90,0x2d,0x32,0xfe,0x78,0x2d,0xfe,0x00,0xa1,0xfe,0x90,0x2d,0x33,0xfe,0x18, 87 | 0x2d,0xfe,0x39,0xea,0x06,0xfe,0x68,0x2b,0xfe,0x41,0x57,0x01,0xfe,0x20,0xbb,0xfe, 88 | 0x30,0x2f,0xfe,0x00,0xb9,0xfe,0xb0,0x2f,0xfe,0x20,0xbb,0xfe,0x30,0x2f,0xfe,0x70, 89 | 0xb9,0xfe,0x40,0x2f,0xfe,0x20,0xbd,0xfe,0x41,0x6b,0x07,0xfe,0xc0,0x2f,0xfe,0x30, 90 | 0xbf,0xfe,0x29,0xdb,0x02,0x3d,0xfe,0x31,0x95,0x02,0xfe,0x38,0x16,0xfe,0x08,0xa7, 91 | 0xfe,0x11,0xed,0x07,0xfe,0x40,0x14,0xfe,0x11,0xfa,0x02,0xfe,0xed,0x02,0xfb,0x02, 92 | 0xfe,0x15,0x01,0xd9,0x02,0xfe,0x4d,0x09,0xaf,0x02,0xfe,0xcd,0x04,0xef,0x01,0xfe, 93 | 0xa9,0xeb,0x04,0xfe,0x59,0x33,0x07,0xfe,0x55,0x06,0x0f,0x02,0xfe,0xc5,0x03,0x0e, 94 | 0x02,0xfe,0x21,0x78,0x07,0xfe,0xe0,0xb4,0xfe,0x31,0x63,0x07,0xfe,0xa0,0x29,0xfe, 95 | 0x31,0xb2,0x04,0xfe,0x10,0x29,0xfe,0xf0,0xab,0xfe,0x31,0x1a,0x08,0xfe,0xdd,0x02, 96 | 0xb6,0x02,0x00,0x08,0x00,0x3b,0x08,0x4c,0x49,0x56,0x45,0x32,0x44,0x53,0x48,0x41, 97 | 0x44,0x45,0x52,0x5f,0x50,0x49,0x58,0x45,0x4c,0x4d,0x41,0x53,0x4b,0x45,0x44,0x2e, 98 | 0x46,0x4c,0x41,0x47,0x00,0x00,0x00,0x4c,0x69,0x76,0x65,0x32,0x44,0x53,0x68,0x61, 99 | 0x64,0x65,0x72,0x5f,0x50,0x69,0x78,0x65,0x6c,0xfe,0x01,0x4e,0x0c,0x65,0x64,0x2e, 100 | 0x66,0x6c,0x61,0x67,0xfe,0x09,0x47,0x16,0x9c,0x0a,0xfe,0xa0,0x43,0x49,0x4e,0x56, 101 | 0x45,0x52,0x54,0xfe,0xf0,0x4b,0x49,0x6e,0x76,0x65,0x72,0x74,0xfe,0x30,0x53,0x0c, 102 | 0x00,0xc5,0x0c,0xfe,0xe0,0x53,0x50,0x52,0x45,0x4d,0x55,0x4c,0x54,0xfe,0x20,0x5a, 103 | 0xfe,0xe8,0x5b,0x50,0x72,0x65,0x6d,0x75,0x6c,0x74,0xfe,0x20,0x62,0x00,0x0a,0x00, 104 | 0x64,0xfe,0xa8,0xb7,0xfe,0x24,0x01,0x5b,0xfe,0x60,0x53,0x08,0x00,0x4f,0xfe,0x79, 105 | 0x4f,0x01,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0xfe,0xb1,0x03,0x01,0x4e,0xfe,0x01,0x3e, 106 | 0x0d,0x6c,0xfe,0x31,0x4f,0x01,0x78,0xfe,0x78,0x97,0xfe,0x10,0x43,0xfe,0xf0,0x97, 107 | 0xfe,0x10,0x4b,0xfe,0x60,0x97,0x09,0x00,0x43,0x09,0xfe,0x70,0x53,0x53,0x45,0x54, 108 | 0x55,0x50,0xfe,0x00,0xf0,0xfe,0xb8,0x4f,0x53,0x65,0x74,0x75,0xfe,0x11,0x3f,0x0e, 109 | 0xfe,0x30,0xe3,0x21,0xfe,0x50,0xe3,0xfe,0x01,0x8e,0x01,0xfe,0x19,0x32,0x02,0xfe, 110 | 0x00,0x0a,0xfe,0x68,0x47,0x56,0x65,0x72,0x74,0xfe,0x19,0x32,0x02,0xfe,0x01,0x89, 111 | 0x01,0xfe,0x10,0x43,0x35,0xfe,0x70,0x43,0xfe,0x10,0xe2,0xfe,0xb0,0x43,0xfe,0x10, 112 | 0xda,0xfe,0x38,0x43,0x29,0xfe,0x50,0xd3,0xfe,0x00,0x38,0xfe,0x30,0xd2,0xfe,0x08, 113 | 0x46,0xfe,0x68,0x43,0xfe,0x30,0xce,0xfe,0x20,0x46,0xfe,0x08,0x00,0x10,0xfe,0x59, 114 | 0x0b,0x19,0xfe,0xe0,0x00,0xff,0xfe,0x18,0x00,0xfe,0x20,0x0f,0x04,0xfe,0x18,0x07, 115 | 0x20,0xfe,0x18,0x07,0x4a,0xba,0x23,0x42,0xcf,0x50,0xd5,0x01,0x8e,0xe4,0x30,0xa1, 116 | 0x86,0x6b,0xfe,0x30,0x07,0xfe,0x20,0x2f,0xb7,0x02,0xfe,0x50,0x47,0xfe,0x20,0x00, 117 | 0x48,0xfe,0x58,0x47,0x9f,0x62,0xb7,0x5a,0xe1,0x64,0xd5,0x01,0xd3,0xc3,0x5b,0xfe, 118 | 0x08,0x3f,0xfe,0x20,0x07,0xb8,0xfe,0x18,0x3f,0xbf,0xfe,0x98,0x47,0x9c,0xfe,0x58, 119 | 0x47,0xc0,0xeb,0x14,0x5b,0xfe,0x00,0x47,0xe6,0x10,0xb1,0xfe,0x08,0x3f,0xfe,0x20, 120 | 0x07,0x78,0x05,0xfe,0x10,0x1f,0x6b,0xfe,0x98,0x47,0x00,0xfe,0x18,0xb1,0xfe,0x20, 121 | 0x47,0x92,0xde,0x37,0xfe,0x08,0xd7,0x43,0x98,0x83,0xfe,0x08,0x3f,0xfe,0x20,0x07, 122 | 0xe4,0x07,0xfe,0x10,0x1f,0x62,0xfe,0x98,0x47,0x54,0xfe,0x58,0x47,0x60,0x7e,0xf5, 123 | 0x41,0xfe,0x00,0x47,0xeb,0x15,0xd8,0xa0,0xfe,0x00,0x3f,0xfe,0x20,0x07,0x48,0xfe, 124 | 0x19,0x94,0x1a,0x11,0xfe,0x18,0x2f,0xfe,0x60,0x47,0x98,0xfe,0x58,0x47,0x30,0x73, 125 | 0x0d,0xfe,0x08,0x8f,0x30,0xa3,0x04,0xfe,0x08,0x87,0xfe,0x20,0x07,0x5c,0x0b,0xfe, 126 | 0x10,0x1f,0xd3,0xfe,0x59,0xaf,0x01,0xfe,0x20,0x00,0xec,0xfe,0x58,0x47,0xb1,0x03, 127 | 0xad,0xfe,0x08,0x8f,0xe3,0x0f,0x4f,0xfe,0x08,0x87,0xfe,0x20,0x07,0x30,0x0c,0xfe, 128 | 0x10,0x1f,0x1e,0xfe,0x98,0xd7,0x38,0xfe,0x18,0x17,0xfe,0x20,0x47,0xe0,0x4c,0xde, 129 | 0xfe,0x08,0x47,0xd7,0x8a,0xa9,0xfe,0x08,0x3f,0xfe,0x20,0x07,0x50,0x0e,0xfe,0x10, 130 | 0x1f,0xf9,0xfe,0x98,0x47,0x7c,0xfe,0x58,0x47,0x02,0xc0,0xc3,0xfe,0x08,0x47,0x6d, 131 | 0xb4,0x7a,0xfe,0x08,0x3f,0xfe,0x20,0x07,0x4c,0x11,0xfe,0x10,0x1f,0xed,0xfe,0x99, 132 | 0x1f,0x01,0xc0,0xfe,0x58,0x47,0x86,0x6e,0xb4,0x2b,0xfe,0x00,0x47,0xbe,0xab,0x20, 133 | 0xfe,0x08,0x3f,0xfe,0x20,0x07,0x3c,0x13,0xfe,0x10,0x1f,0xb4,0xfe,0x98,0x8f,0xfe, 134 | 0x61,0xe7,0x02,0xfe,0x21,0x2b,0x1c,0xfe,0x21,0x9f,0x02, 135 | } ; 136 | 137 | //#ifndef DX_NON_NAMESPACE 138 | // 139 | //} 140 | // 141 | //#endif // DX_NON_NAMESPACE 142 | 143 | #endif // DX_NON_LIVE2D_CUBISM4 144 | -------------------------------------------------------------------------------- /src/HTML5/DxShader_Common_HTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5 シェーダー共通定義コード 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_SHADER_COMMON_HTML5_H 10 | #define DX_SHADER_COMMON_HTML5_H 11 | 12 | // マクロ定義 ----------------------------------- 13 | 14 | #define DX_HTML5_COMMON_CONST_LIGHT_NUM (6) // 共通パラメータのライトの最大数 15 | 16 | // 構造体定義 -------------------------------------------------------------------- 17 | 18 | // マテリアルパラメータ 19 | struct DX_HTML5_CONST_MATERIAL 20 | { 21 | DX_HTML5_SHADER_FLOAT4 Diffuse ; // ディフューズカラー 22 | DX_HTML5_SHADER_FLOAT4 Specular ; // スペキュラカラー 23 | DX_HTML5_SHADER_FLOAT4 Ambient_Emissive ; // マテリアルエミッシブカラー + マテリアルアンビエントカラー * グローバルアンビエントカラー 24 | 25 | DX_HTML5_SHADER_FLOAT Power ; // スペキュラの強さ 26 | DX_HTML5_SHADER_FLOAT TypeParam0 ; // マテリアルタイプパラメータ0 27 | DX_HTML5_SHADER_FLOAT TypeParam1 ; // マテリアルタイプパラメータ1 28 | DX_HTML5_SHADER_FLOAT TypeParam2 ; // マテリアルタイプパラメータ2 29 | } ; 30 | 31 | // フォグパラメータ 32 | struct DX_HTML5_VS_CONST_FOG 33 | { 34 | DX_HTML5_SHADER_FLOAT LinearAdd ; // フォグ用パラメータ end / ( end - start ) 35 | DX_HTML5_SHADER_FLOAT LinearDiv ; // フォグ用パラメータ -1 / ( end - start ) 36 | DX_HTML5_SHADER_FLOAT Density ; // フォグ用パラメータ density 37 | DX_HTML5_SHADER_FLOAT E ; // フォグ用パラメータ 自然対数の低 38 | 39 | DX_HTML5_SHADER_FLOAT4 Color ; // カラー 40 | } ; 41 | 42 | // ライトパラメータ 43 | struct DX_HTML5_CONST_LIGHT 44 | { 45 | DX_HTML5_SHADER_INT Type ; // ライトタイプ( DX_LIGHTTYPE_POINT など ) 46 | DX_HTML5_SHADER_INT3 Padding1 ; // パディング1 47 | 48 | DX_HTML5_SHADER_FLOAT3 Position ; // 座標( ビュー空間 ) 49 | DX_HTML5_SHADER_FLOAT RangePow2 ; // 有効距離の2乗 50 | 51 | DX_HTML5_SHADER_FLOAT3 Direction ; // 方向( ビュー空間 ) 52 | DX_HTML5_SHADER_FLOAT FallOff ; // スポットライト用FallOff 53 | 54 | DX_HTML5_SHADER_FLOAT3 Diffuse ; // ディフューズカラー 55 | DX_HTML5_SHADER_FLOAT SpotParam0 ; // スポットライト用パラメータ0( cos( Phi / 2.0f ) ) 56 | 57 | DX_HTML5_SHADER_FLOAT3 Specular ; // スペキュラカラー 58 | DX_HTML5_SHADER_FLOAT SpotParam1 ; // スポットライト用パラメータ1( 1.0f / ( cos( Theta / 2.0f ) - cos( Phi / 2.0f ) ) ) 59 | 60 | DX_HTML5_SHADER_FLOAT4 Ambient ; // アンビエントカラーとマテリアルのアンビエントカラーを乗算したもの 61 | 62 | DX_HTML5_SHADER_FLOAT Attenuation0 ; // 距離による減衰処理用パラメータ0 63 | DX_HTML5_SHADER_FLOAT Attenuation1 ; // 距離による減衰処理用パラメータ1 64 | DX_HTML5_SHADER_FLOAT Attenuation2 ; // 距離による減衰処理用パラメータ2 65 | DX_HTML5_SHADER_FLOAT Padding2 ; // パディング2 66 | } ; 67 | 68 | // フラグメントシェーダー・頂点シェーダー共通パラメータ 69 | struct DX_HTML5_CONST_BUFFER_COMMON 70 | { 71 | DX_HTML5_CONST_LIGHT Light[ DX_HTML5_COMMON_CONST_LIGHT_NUM ] ; // ライトパラメータ 72 | DX_HTML5_CONST_MATERIAL Material ; // マテリアルパラメータ 73 | DX_HTML5_VS_CONST_FOG Fog ; // フォグパラメータ 74 | } ; 75 | 76 | #endif // DX_SHADER_COMMON_HTML5_H 77 | 78 | -------------------------------------------------------------------------------- /src/HTML5/DxShader_DataType_HTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用シェーダーデータ型定義ヘッダ 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_SHADER_DATATYPE_H 10 | #define DX_SHADER_DATATYPE_H 11 | 12 | // マクロ定義 ----------------------------------- 13 | 14 | // データ型定義 --------------------------------- 15 | 16 | typedef float DX_HTML5_SHADER_FLOAT ; 17 | typedef float DX_HTML5_SHADER_FLOAT2[ 2 ] ; 18 | typedef float DX_HTML5_SHADER_FLOAT3[ 3 ] ; 19 | typedef float DX_HTML5_SHADER_FLOAT4[ 4 ] ; 20 | 21 | typedef int DX_HTML5_SHADER_INT ; 22 | typedef int DX_HTML5_SHADER_INT2[ 2 ] ; 23 | typedef int DX_HTML5_SHADER_INT3[ 3 ] ; 24 | typedef int DX_HTML5_SHADER_INT4[ 4 ] ; 25 | 26 | #endif // DX_SHADER_DATATYPE_H 27 | 28 | -------------------------------------------------------------------------------- /src/HTML5/DxShader_FS_HTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ フラグメントシェーダー関連定義 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_SHADER_FS_HTML5_H 10 | #define DX_SHADER_FS_HTML5_H 11 | 12 | // インクルード --------------------------------- 13 | 14 | #include "DxShader_Common_HTML5.h" 15 | 16 | // マクロ定義 ----------------------------------- 17 | 18 | #define DX_VERTEXLIGHTING_LIGHT_NUM (3) // 頂点単位ライティングで同時に使用できるライトの最大数 19 | #define DX_PIXELLIGHTING_LIGHT_NUM (6) // ピクセル単位ライティングで同時に使用できるライトの最大数 20 | 21 | #define DX_HTML5_PS_CONST_FILTER_SIZE (256) // フィルター用定数バッファのサイズ 22 | 23 | // データ型定義 --------------------------------- 24 | 25 | // シャドウマップパラメータ 26 | struct DX_HTML5_FS_CONST_SHADOWMAP 27 | { 28 | DX_HTML5_SHADER_FLOAT AdjustDepth ; // 閾値深度補正値 29 | DX_HTML5_SHADER_FLOAT GradationParam ; // グラデーション範囲 30 | DX_HTML5_SHADER_FLOAT Enable_Light0 ; // ライト0への適用情報 31 | DX_HTML5_SHADER_FLOAT Enable_Light1 ; // ライト1への適用情報 32 | 33 | DX_HTML5_SHADER_FLOAT Enable_Light2 ; // ライト2への適用情報 34 | DX_HTML5_SHADER_FLOAT3 Padding ; // パディング 35 | } ; 36 | 37 | // 定数バッファフラグメントシェーダー基本パラメータ 38 | struct DX_HTML5_FS_CONST_BUFFER_BASE 39 | { 40 | DX_HTML5_SHADER_FLOAT4 ClearColor ; // クリアカラー 41 | DX_HTML5_SHADER_FLOAT4 FactorColor ; // アルファ値等 42 | 43 | DX_HTML5_SHADER_FLOAT MulAlphaColor ; // カラーにアルファ値を乗算するかどうか( 0.0f:乗算しない 1.0f:乗算する ) 44 | DX_HTML5_SHADER_FLOAT AlphaTestRef ; // アルファテストで使用する比較値 45 | DX_HTML5_SHADER_FLOAT2 Padding1 ; 46 | 47 | DX_HTML5_SHADER_INT AlphaTestCmpMode ; // アルファテスト比較モード( DX_CMP_NEVER など ) 48 | DX_HTML5_SHADER_INT3 Padding2 ; 49 | 50 | DX_HTML5_SHADER_FLOAT4 IgnoreTextureColor ; // テクスチャカラー無視処理用カラー 51 | 52 | DX_HTML5_SHADER_FLOAT4 DrawAddColor ; // 加算する色 53 | } ; 54 | 55 | 56 | // 定数バッファシャドウマップパラメータ 57 | struct DX_HTML5_FS_CONST_BUFFER_SHADOWMAP 58 | { 59 | DX_HTML5_FS_CONST_SHADOWMAP Data[ 3 ] ; 60 | } ; 61 | 62 | 63 | #endif // DX_SHADER_PS_HTML5_H 64 | -------------------------------------------------------------------------------- /src/HTML5/DxShader_VS_HTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ バーテックスシェーダー関連定義 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_SHADER_VS_HTML5_H 10 | #define DX_SHADER_VS_HTML5_H 11 | 12 | // インクルード --------------------------------- 13 | 14 | #include "DxShader_Common_HTML5.h" 15 | 16 | // マクロ定義 ----------------------------------- 17 | 18 | #define DX_HTML5_VS_CONST_TEXTURE_MATRIX_NUM 3 // テクスチャ座標変換行列の転置行列の数 19 | #define DX_HTML5_VS_CONST_WORLD_MAT_NUM 54 // トライアングルリスト一つで同時に使用するローカル→ワールド行列の最大数 20 | 21 | // データ型定義 --------------------------------- 22 | 23 | // 基本パラメータ 24 | struct DX_HTML5_VS_CONST_BUFFER_BASE 25 | { 26 | DX_HTML5_SHADER_FLOAT4 AntiViewportMatrix[ 4 ] ; // アンチビューポート行列 27 | DX_HTML5_SHADER_FLOAT4 ProjectionMatrix[ 4 ] ; // ビュー → プロジェクション行列 28 | DX_HTML5_SHADER_FLOAT4 ViewMatrix[ 3 ] ; // ワールド → ビュー行列 29 | DX_HTML5_SHADER_FLOAT4 LocalWorldMatrix[ 3 ] ; // ローカル → ワールド行列 30 | 31 | DX_HTML5_SHADER_FLOAT4 ToonOutLineSize ; // トゥーンの輪郭線の大きさ 32 | DX_HTML5_SHADER_FLOAT DiffuseSource ; // ディフューズカラー( 0.0f:マテリアル 1.0f:頂点 ) 33 | DX_HTML5_SHADER_FLOAT SpecularSource ; // スペキュラカラー( 0.0f:マテリアル 1.0f:頂点 ) 34 | DX_HTML5_SHADER_FLOAT MulSpecularColor ; // スペキュラカラー値に乗算する値( スペキュラ無効処理で使用 ) 35 | DX_HTML5_SHADER_FLOAT Padding ; 36 | } ; 37 | 38 | // その他の行列 39 | struct DX_HTML5_VS_CONST_BUFFER_OTHERMATRIX 40 | { 41 | DX_HTML5_SHADER_FLOAT4 ShadowMapLightViewProjectionMatrix[ 3 ][ 4 ] ; // シャドウマップ用のライトビュー行列とライト射影行列を乗算したもの 42 | DX_HTML5_SHADER_FLOAT4 TextureMatrix[ DX_HTML5_VS_CONST_TEXTURE_MATRIX_NUM ][ 2 ] ; // テクスチャ座標操作用行列 43 | } ; 44 | 45 | // スキニングメッシュ用の ローカル → ワールド行列 46 | struct DX_HTML5_VS_CONST_BUFFER_LOCALWORLDMATRIX 47 | { 48 | DX_HTML5_SHADER_FLOAT4 Matrix_[ DX_HTML5_VS_CONST_WORLD_MAT_NUM * 3 ] ; // ローカル → ワールド行列 49 | } ; 50 | 51 | #endif // DX_SHADER_VS_HTML5_H 52 | -------------------------------------------------------------------------------- /src/HTML5/DxSoundConvertHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用サウンドデータ変換プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_SOUND 15 | 16 | // インクルード---------------------------------------------------------------- 17 | #include "DxSoundConvertHTML5.h" 18 | #include "../DxSoundConvert.h" 19 | #include "../DxSystem.h" 20 | #include "../DxHeap.h" 21 | #include "../DxMemory.h" 22 | #include "../DxStatic.h" 23 | #include "../DxLog.h" 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | #ifndef DX_NON_NAMESPACE 30 | 31 | namespace DxLib 32 | { 33 | 34 | #endif // DX_NON_NAMESPACE 35 | 36 | // マクロ定義------------------------------------------------------------------ 37 | 38 | // 型定義---------------------------------------------------------------------- 39 | 40 | typedef struct tagDECODEDAUDIO 41 | { 42 | void* SrcBuffer; 43 | int SrcLength; 44 | 45 | int ChannelNum; 46 | int DecodedId; 47 | int SamplingRate; 48 | int Length; 49 | } DECODEDAUDIO; 50 | 51 | typedef struct SOUNDCONV_BROWSER 52 | { 53 | int BufferId; 54 | int ReadPos; 55 | } SOUNDCONV_BROWSER; 56 | 57 | // データ宣言------------------------------------------------------------------ 58 | 59 | SOUNDCONVERTDATA_HTML5 GSoundConvertData_HTML5 ; 60 | 61 | // 関数プロトタイプ宣言 ------------------------------------------------------- 62 | 63 | // プログラム------------------------------------------------------------------ 64 | 65 | // 初期化・終了関数 66 | 67 | static int InitializeDecodeAudioOnBrowser() { 68 | return MAIN_THREAD_EM_ASM_INT({ 69 | if (!Module["DxLib"]) { 70 | Module["DxLib"] = {}; 71 | } 72 | 73 | Module["DxLib"].audioContext = new AudioContext(); 74 | Module["DxLib"].NextDecodedAudioId = 1; 75 | Module["DxLib"].DecodedAudio = []; 76 | 77 | return 0; 78 | }); 79 | } 80 | 81 | // サウンドデータ変換処理の環境依存の初期化を行う 82 | extern int InitializeSoundConvert_PF( void ) 83 | { 84 | InitializeDecodeAudioOnBrowser(); 85 | return 0 ; 86 | } 87 | 88 | static int TerminateDecodeAudioOnBrowser() { 89 | return MAIN_THREAD_EM_ASM_INT({ 90 | if (Module["DxLib"]) { 91 | delete Module["DxLib"].audioContext; 92 | delete Module["DxLib"].NextDecodedAudioId; 93 | delete Module["DxLib"].DecodedAudio; 94 | } 95 | 96 | return 0; 97 | }); 98 | } 99 | 100 | // サウンドデータ変換処理の環境依存の終了処理を行う 101 | extern int TerminateSoundConvert_PF( void ) 102 | { 103 | TerminateDecodeAudioOnBrowser(); 104 | 105 | // 正常終了 106 | return 0 ; 107 | } 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | #ifdef PROXY_TO_PTHREAD 117 | EM_JS(void, SetupDecodeAudioOnBrowserJs, (em_proxying_ctx* ctx, void* Data), 118 | #else 119 | EM_JS(void, SetupDecodeAudioOnBrowserJs, (DECODEDAUDIO* Data), 120 | #endif 121 | { 122 | function DecodeAudioImpl(wakeUp) { 123 | const SrcBuffer = HEAPU32[(Data>>2)+0]; 124 | const Length = HEAPU32[(Data>>2)+1]; 125 | 126 | const audioData = HEAPU8.slice(SrcBuffer, SrcBuffer + Length); 127 | const onSuccess = function(decoded) { 128 | const id = Module["DxLib"].NextDecodedAudioId++; 129 | Module["DxLib"].DecodedAudio[id] = decoded; 130 | 131 | HEAP32[(Data>>2)+2] = decoded.numberOfChannels; 132 | HEAP32[(Data>>2)+3] = id; 133 | HEAPU32[(Data>>2)+4] = decoded.sampleRate; 134 | HEAPU32[(Data>>2)+5] = decoded.length*decoded.numberOfChannels; 135 | 136 | wakeUp(); 137 | }; 138 | 139 | const onFailure = function() { 140 | HEAP32[(Data>>2)+2] = 0; 141 | HEAP32[(Data>>2)+3] = -1; 142 | HEAPU32[(Data>>2)+4] = 0; 143 | HEAPU32[(Data>>2)+5] = 0; 144 | 145 | wakeUp(); 146 | }; 147 | 148 | Module["DxLib"].audioContext.decodeAudioData(audioData.buffer, onSuccess, onFailure); 149 | } 150 | 151 | #ifdef ASYNCIFY 152 | Asyncify.handleSleep(DecodeAudioImpl); 153 | #elif defined(PROXY_TO_PTHREAD) 154 | DecodeAudioImpl(function() { 155 | _emscripten_proxy_finish(ctx); 156 | }); 157 | #endif 158 | }) 159 | 160 | static int SetupDecodeAudioOnBrowser(DECODEDAUDIO* Data) 161 | { 162 | #ifdef ASYNCIFY 163 | SetupDecodeAudioOnBrowserJs(Data); 164 | #elif defined(PROXY_TO_PTHREAD) 165 | auto defaultQueue = emscripten_proxy_get_system_queue(); 166 | emscripten_proxy_sync_with_ctx( 167 | defaultQueue, 168 | emscripten_main_runtime_thread_id(), 169 | &SetupDecodeAudioOnBrowserJs, 170 | (void*)Data); 171 | #endif 172 | 173 | return Data->DecodedId; 174 | } 175 | 176 | // (環境依存処理)変換処理のセットアップ( [戻] -1:エラー ) 177 | extern int SetupSoundConvert_PF( SOUNDCONV *SoundConv, STREAMDATA *Stream, int DisableReadSoundFunctionMask ) 178 | { 179 | DWORD_PTR sp; 180 | STREAMDATASHRED *sstr; 181 | size_t FileSize; 182 | BYTE *AudioData = NULL; 183 | DECODEDAUDIO DecodedAudio; 184 | SOUNDCONV_BROWSER* SoundConvBrowser; 185 | 186 | { 187 | sstr = &Stream->ReadShred ; 188 | sp = Stream->DataPoint ; 189 | 190 | // ファイルサイズを得る 191 | sstr->Seek( sp, 0, STREAM_SEEKTYPE_END ) ; 192 | FileSize = ( size_t )sstr->Tell( sp ) ; 193 | sstr->Seek( sp, 0, STREAM_SEEKTYPE_SET ) ; 194 | } 195 | 196 | // デコード後のデータを格納するメモリ領域の確保 197 | AudioData = (BYTE *)DXALLOC( ( size_t )FileSize ) ; 198 | if( AudioData == NULL ) goto ERR ; 199 | if( ( sstr->Read( AudioData, sizeof(BYTE), FileSize, sp ) ) <= 0 ) goto ERR ; 200 | 201 | { 202 | DecodedAudio.SrcBuffer = AudioData; 203 | DecodedAudio.SrcLength = FileSize; 204 | } 205 | 206 | if( SetupDecodeAudioOnBrowser(&DecodedAudio) == -1) goto ERR ; 207 | 208 | SoundConv->HeaderPos = 0; 209 | SoundConv->HeaderSize = 0; 210 | SoundConv->DataPos = 0; 211 | SoundConv->DataSize = DecodedAudio.Length ; 212 | 213 | SoundConv->OutFormat.nSamplesPerSec = DecodedAudio.SamplingRate ; 214 | SoundConv->OutFormat.nChannels = DecodedAudio.ChannelNum ; 215 | SoundConv->OutFormat.wBitsPerSample = 16 ; 216 | SoundConv->OutFormat.wFormatTag = WAVE_FORMAT_PCM ; 217 | SoundConv->OutFormat.nBlockAlign = ( WORD )( SoundConv->OutFormat.wBitsPerSample * SoundConv->OutFormat.nChannels / 8 ) ; 218 | SoundConv->OutFormat.nAvgBytesPerSec = SoundConv->OutFormat.nBlockAlign * SoundConv->OutFormat.nSamplesPerSec ; 219 | 220 | SoundConvBrowser = (SOUNDCONV_BROWSER*)SoundConv->ConvFunctionBuffer; 221 | SoundConvBrowser->BufferId = DecodedAudio.DecodedId; 222 | SoundConvBrowser->ReadPos = 0; 223 | 224 | // 変換後のPCMデータを一時的に保存するメモリ領域のサイズをセット 225 | SoundConv->DestDataSize = ( LONGLONG )SoundConv->OutFormat.nAvgBytesPerSec ; 226 | 227 | // タイプセット 228 | SoundConv->MethodType = SOUND_METHODTYPE_BROWSER ; 229 | 230 | DXFREE(AudioData); 231 | 232 | return 0 ; 233 | ERR: 234 | DXFREE(AudioData); 235 | 236 | return -1 ; 237 | } 238 | 239 | // (環境依存処理)変換処理の位置を変更する( サンプル単位 ) 240 | extern int SetSampleTimeSoundConvert_PF( SOUNDCONV *SoundConv, LONGLONG SampleTime ) 241 | { 242 | int res = -1 ; 243 | 244 | return res ; 245 | } 246 | 247 | int ConvertDecodeAudioOnBrowser(int BufferId, void* Buffer, size_t ReadSize, int ReadPos) { 248 | return MAIN_THREAD_EM_ASM_INT({ 249 | const BufferId = $0; 250 | const Buffer = $1; 251 | const ReadSize = $2; 252 | const ReadPos = $3; 253 | 254 | const decoded = Module["DxLib"].DecodedAudio[BufferId]; 255 | 256 | if (!decoded) { 257 | return -1; 258 | } 259 | 260 | const readSizeByChannel = ReadSize / decoded.numberOfChannels; 261 | const readPosByChannel = ReadPos / decoded.numberOfChannels; 262 | 263 | for (let i = 0; i < decoded.numberOfChannels; i++) { 264 | const rawData = decoded.getChannelData(i); 265 | for (let j = readPosByChannel; j < readPosByChannel + readSizeByChannel; j++) { 266 | HEAP16[(Buffer>>1)+j*decoded.numberOfChannels+i]=rawData[j] * 32767; 267 | } 268 | } 269 | 270 | return 0; 271 | }, BufferId, Buffer, ReadSize, ReadPos); 272 | } 273 | 274 | // (環境依存処理)変換後のバッファにデータを補充する 275 | extern int ConvertProcessSoundConvert_PF( SOUNDCONV *SoundConv ) 276 | { 277 | LONGLONG readsize, pos ; 278 | SOUNDCONV_BROWSER* SoundConvBrowser; 279 | 280 | SoundConvBrowser = (SOUNDCONV_BROWSER*)SoundConv->ConvFunctionBuffer; 281 | 282 | pos = SoundConvBrowser->ReadPos - SoundConv->DataPos ; 283 | if( pos >= SoundConv->DataSize ) return -1 ; 284 | 285 | // 読み込むデータサイズを決定する 286 | readsize = SoundConv->DataSize - pos ; 287 | if( SoundConv->DestDataSize < readsize ) readsize = SoundConv->DestDataSize ; 288 | 289 | ConvertDecodeAudioOnBrowser(SoundConvBrowser->BufferId, SoundConv->DestData, readsize, pos); 290 | SoundConv->DestDataValidSize = readsize ; 291 | SoundConvBrowser->ReadPos += readsize ; 292 | 293 | return 0 ; 294 | } 295 | 296 | int DeleteDecodeAudioOnBrowser(int BufferId) { 297 | return MAIN_THREAD_EM_ASM_INT({ 298 | delete Module["DxLib"].DecodedAudio[$0]; 299 | return 0; 300 | }, BufferId); 301 | } 302 | 303 | // (環境依存処理)変換処理の後始末を行う 304 | extern int TerminateSoundConvert_PF( SOUNDCONV *SoundConv ) 305 | { 306 | SOUNDCONV_BROWSER* SoundConvBrowser; 307 | 308 | SoundConvBrowser = (SOUNDCONV_BROWSER*)SoundConv->ConvFunctionBuffer; 309 | 310 | DeleteDecodeAudioOnBrowser(SoundConvBrowser->BufferId); 311 | 312 | return 0 ; 313 | } 314 | 315 | // (環境依存処理)変換後の大凡のデータサイズを得る 316 | extern LONGLONG GetSoundConvertDestSize_Fast_PF( SOUNDCONV *SoundConv ) 317 | { 318 | DWORD_PTR sp; 319 | STREAMDATASHRED *sstr; 320 | size_t FileSize; 321 | 322 | { 323 | sstr = &SoundConv->Stream.ReadShred ; 324 | sp = SoundConv->Stream.DataPoint ; 325 | 326 | // ファイルサイズを得る 327 | sstr->Seek( sp, 0, STREAM_SEEKTYPE_END ) ; 328 | FileSize = ( size_t )sstr->Tell( sp ) ; 329 | sstr->Seek( sp, 0, STREAM_SEEKTYPE_SET ) ; 330 | } 331 | 332 | return FileSize ; 333 | } 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | #ifndef DX_NON_NAMESPACE 356 | 357 | } 358 | 359 | #endif // DX_NON_NAMESPACE 360 | 361 | #endif // DX_NON_SOUND 362 | 363 | -------------------------------------------------------------------------------- /src/HTML5/DxSoundConvertHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用サウンドデータ変換プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_SOUNDCONVERTHTML5_H 10 | #define DX_SOUNDCONVERTHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_SOUND 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxLib.h" 18 | #include "../DxSoundConvert.h" 19 | 20 | #ifndef DX_NON_NAMESPACE 21 | 22 | namespace DxLib 23 | { 24 | 25 | #endif // DX_NON_NAMESPACE 26 | 27 | // マクロ定義 -------------------------------------------------------------------- 28 | 29 | #define SOUND_METHODTYPE_BROWSER (4) 30 | 31 | // 構造体定義 -------------------------------------------------------------------- 32 | 33 | // サウンド変換処理全体で使用するデータ構造体で HTML5 に依存している情報の構造体 34 | struct SOUNDCONVERTDATA_HTML5 35 | { 36 | int Dummy ; 37 | } ; 38 | 39 | // 内部大域変数宣言 -------------------------------------------------------------- 40 | 41 | // 関数プロトタイプ宣言----------------------------------------------------------- 42 | 43 | #ifndef DX_NON_NAMESPACE 44 | 45 | } 46 | 47 | #endif // DX_NON_NAMESPACE 48 | 49 | #endif // DX_NON_SOUND 50 | 51 | #endif // DX_SOUNDCONVERTHTML5_H 52 | -------------------------------------------------------------------------------- /src/HTML5/DxSoundHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用サウンドプログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_SOUNDHTML5_H 10 | #define DX_SOUNDHTML5_H 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #ifndef DX_NON_SOUND 15 | 16 | // インクルード ------------------------------------------------------------------ 17 | #include "../DxLib.h" 18 | #include "../DxThread.h" 19 | 20 | #include 21 | #include 22 | 23 | #ifndef DX_NON_NAMESPACE 24 | 25 | namespace DxLib 26 | { 27 | 28 | #endif // DX_NON_NAMESPACE 29 | 30 | // マクロ定義 -------------------------------------------------------------------- 31 | 32 | // ストリーム関係の定義 33 | #define STS_BUFSEC_FILE (256) // ストリーム風サウンド再生時に確保するサウンドバッファの時間( 単位は STS_DIVNUM分の1秒 )( ファイルからのストリーム再生用 ) 34 | #define STS_ADVANCECOPYSEC_FILE (192) // ストリーム風サウンド再生時に音声データを先行展開しておく最大時間( 単位は STS_DIVNUM分の1秒 )( ファイルからのストリーム再生用 ) 35 | #define STS_MINADVANCECOPYSEC_FILE (96) // ストリーム風サウンド再生時に音声データを先行展開しておく最小時間( 単位は STS_DIVNUM分の1秒 )( ファイルからのストリーム再生用 ) 36 | 37 | // 一つのサウンドソースのバッファ数 38 | #define SOUNDSOURCE_BUFFER_NUM (6) 39 | 40 | // サウンドバッファ再生処理用情報の最大数 41 | #define SOUNDBUFFERPLAYINFO_MAX_NUM (512) 42 | 43 | // 構造体定義 -------------------------------------------------------------------- 44 | 45 | // サウンド破棄処理用構造体 46 | struct SOUNDRELEASE_INFO 47 | { 48 | int UseFlag ; 49 | int NextIndex ; 50 | 51 | ALuint ALSource ; 52 | ALuint ALBuffer[ SOUNDSOURCE_BUFFER_NUM ] ; 53 | 54 | DWORD ReleaseTime ; 55 | } ; 56 | 57 | // サウンドバッファ環境依存情報構造体 58 | struct SOUNDBUFFER_PF 59 | { 60 | DX_CRITICAL_SECTION CriticalSection ; // クリティカルセクション 61 | 62 | int BufferEndPlayEnqueueNum ; // バッファキューに再生終了後のキューを積んだ回数 63 | 64 | int PlaySetupComp ; // 再生準備が済んでいるかどうか 65 | ALuint ALBuffer[ SOUNDSOURCE_BUFFER_NUM ] ; // ALバッファ 66 | void * ALBufferImage[ SOUNDSOURCE_BUFFER_NUM ] ; // ALバッファイメージ 67 | DWORD ALBufferValidBytes[ SOUNDSOURCE_BUFFER_NUM ] ; // ALバッファの有効なデータのバイト数 68 | DWORD ALBufferEndPos[ SOUNDSOURCE_BUFFER_NUM ] ; // ALバッファの有効データの終了位置がサウンドバッファのどの位置に相当するか、の情報 69 | ALuint ALSource ; // ALソース 70 | 71 | int StopSoundBufferValid ; 72 | struct SOUNDBUFFER * StopSoundBufferPrev ; 73 | struct SOUNDBUFFER * StopSoundBufferNext ; 74 | 75 | int PlaySoundBufferValid ; 76 | struct SOUNDBUFFER * PlaySoundBufferPrev ; 77 | struct SOUNDBUFFER * PlaySoundBufferNext ; 78 | 79 | struct SOUNDBUFFER * RePlaySoundBufferPrev ; 80 | struct SOUNDBUFFER * RePlaySoundBufferNext ; 81 | } ; 82 | 83 | // サウンドシステム用環境依存データ構造体 84 | struct SOUNDSYSTEMDATA_PF 85 | { 86 | int InitializeFlag ; // 初期化済みかどうか 87 | 88 | ALCdevice * ALCdeviceObject ; // ALデバイスオブジェクト 89 | ALCcontext * ALCcontectObject ; // ALコンテキストオブジェクト 90 | 91 | pthread_t ProcessALBufferThread ; // ALBufferの再生処理を行うスレッドのID 92 | volatile int ProcessALBufferThreadEndRequest ; // ALBufferの再生処理を行うスレッドを終了するかどうか 93 | 94 | pthread_t ProcessSoundThread ; // ProcessStreamSoundMemAll 等を呼ぶスレッドのID 95 | volatile int ProcessSoundThreadEndRequest ; // ProcessStreamSoundMemAll 等を呼ぶスレッドを終了するかどうか 96 | 97 | int DXSoundProcessStart ; // DXライブラリのサウンド処理を開始したかどうか 98 | 99 | DX_CRITICAL_SECTION StopSoundBufferCriticalSection ; // クリティカルセクション 100 | struct SOUNDBUFFER * StopSoundBuffer ; 101 | 102 | DX_CRITICAL_SECTION PlaySoundBufferCriticalSection ; // クリティカルセクション 103 | struct SOUNDBUFFER * PlaySoundBuffer ; 104 | 105 | int SoundReleaseInitialize ; 106 | DX_CRITICAL_SECTION SoundReleaseCriticalSection ; 107 | int SoundReleaseInfoMaxNum ; 108 | int SoundReleaseInfoNum ; 109 | SOUNDRELEASE_INFO * SoundReleaseInfo ; 110 | int SoundReleaseInfoFirstIndex ; 111 | int SoundReleaseInfoNextUseIndex ; 112 | } ; 113 | 114 | // MIDIデータ環境依存情報 115 | struct MIDIHANDLEDATA_PF 116 | { 117 | int Dummy ; 118 | } ; 119 | 120 | // MIDIシステム用環境依存データ構造体 121 | struct MIDISYSTEMDATA_PF 122 | { 123 | int Dummy ; 124 | } ; 125 | 126 | // 内部大域変数宣言 -------------------------------------------------------------- 127 | 128 | // 関数プロトタイプ宣言----------------------------------------------------------- 129 | 130 | extern int MidiCallBackProcess( void ) ; // MIDI演奏終了時呼ばれるコールバック関数 131 | 132 | extern void SoundBuffer_Apply_StopSoundBufferList( void ) ; // 停止待ちサウンドバッファリストに登録されているサウンドバッファを停止する 133 | 134 | 135 | // ALデバイスとALコンテキストをセットする 136 | extern void SoundSystem_HTML5_SetALDeviceAndALContext( void *ALCDevice, void *ALCContext ) ; 137 | 138 | // 再生中の ALBuffer を再作成して再再生する 139 | extern void SoundSystem_HTML5_ALBuffer_RePlay( void ) ; 140 | 141 | extern int UpdateSound_PF( void ) ; 142 | 143 | 144 | #ifndef DX_NON_NAMESPACE 145 | 146 | } 147 | 148 | #endif // DX_NON_NAMESPACE 149 | 150 | #endif // DX_NON_SOUND 151 | 152 | #endif // DX_SOUNDHTML5_H 153 | -------------------------------------------------------------------------------- /src/HTML5/DxSystemHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用システムプログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_SYSTEMHTML5_H 10 | #define DX_SYSTEMHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | #include 15 | #include 16 | #include 17 | 18 | #ifndef DX_NON_NAMESPACE 19 | 20 | namespace DxLib 21 | { 22 | 23 | #endif // DX_NON_NAMESPACE 24 | 25 | // マクロ定義 -------------------------------------------------------------------- 26 | 27 | // ソフトがアクティブかどうかをチェックする 28 | #define CheckActiveState() \ 29 | if( g_HTML5Sys.NonActiveRunFlag == FALSE )\ 30 | {\ 31 | DxActiveWait_HTML5() ;\ 32 | } 33 | 34 | // 構造体定義 -------------------------------------------------------------------- 35 | 36 | struct DXLIB_HTML5_SYSTEMINFO 37 | { 38 | volatile void ( *LostFocusCallbackFunction )( void *Data ) ; // アプリのフォーカスが失われた際に呼ばれるコールバック関数 39 | volatile void *LostFocusCallbackFunctionData ; // アプリのフォーカスが失われた際に呼ばれるコールバック関数に渡すポインタ 40 | volatile void ( *GainedFocusCallbackFunction )( void *Data ) ; // アプリのフォーカスが得られた際に呼ばれるコールバック関数 41 | volatile void *GainedFocusCallbackFunctionData ; // アプリのフォーカスが得られた際に呼ばれるコールバック関数に渡すポインタ 42 | 43 | volatile int NonActiveRunFlag ; // アプリがアクティブではなくても処理を実行するかどうかのフラグ 44 | 45 | int ViewWidth; 46 | int ViewHeight; 47 | GLuint ViewFrameBuffer ; // フレームバッファ 48 | GLuint ViewDepthBuffer ; // フレームバッファ 49 | GLuint ViewRenderBuffer ; // フレームバッファ 50 | } ; 51 | 52 | // テーブル----------------------------------------------------------------------- 53 | 54 | // 内部大域変数宣言 -------------------------------------------------------------- 55 | 56 | extern DXLIB_HTML5_SYSTEMINFO g_HTML5Sys ; 57 | extern int g_HTML5RunFlag ; 58 | 59 | // 関数プロトタイプ宣言----------------------------------------------------------- 60 | 61 | // アクティブになるまで何もしない 62 | extern void DxActiveWait_HTML5( void ) ; 63 | 64 | // アプリの外部データ保存用のディレクトリパスを取得する 65 | extern int GetDocumentsDirPathForChar( char *PathBuffer, size_t PathBufferBytes ) ; 66 | 67 | // アプリのデータ保存用のディレクトリパスを取得する 68 | extern int GetLibraryPreferencesDirPathForChar( char *PathBuffer, size_t PathBufferBytes ) ; 69 | 70 | // アプリのキャッシュファイル保存用のディレクトリパスを取得する 71 | extern int GetLibraryCachesDirPathForChar( char *PathBuffer, size_t PathBufferBytes ) ; 72 | 73 | // アプリの一時ファイル保存用のディレクトリパスを取得する 74 | extern int GetTmpDirPathForChar( char *PathBuffer, size_t PathBufferBytes ) ; 75 | 76 | extern int GetGraphicsViewFramebufferInfo( unsigned int *ViewFrameBuffer, int *Width, int *Height ) ; 77 | 78 | extern void GraphicsViewRenderBufferPresent( void ) ; 79 | 80 | // requestAnimationFrame が呼ばれるまで待機する 81 | extern void WaitForNewFrame( void ) ; 82 | 83 | // ブラウザのメッセージループを処理する 84 | extern void YieldToBrowserMessageLoop( void ) ; 85 | 86 | #ifndef DX_NON_NAMESPACE 87 | 88 | } 89 | 90 | #endif // DX_NON_NAMESPACE 91 | 92 | #endif // DX_SYSTEMHTML5_H 93 | -------------------------------------------------------------------------------- /src/HTML5/DxThreadHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用スレッド関係プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | // インクルード --------------------------------------------------------------- 13 | #include "DxThreadHTML5.h" 14 | #include "../DxMemory.h" 15 | #include "../DxBaseFunc.h" 16 | #include 17 | 18 | #ifndef DX_NON_NAMESPACE 19 | 20 | namespace DxLib 21 | { 22 | 23 | #endif // DX_NON_NAMESPACE 24 | 25 | // マクロ定義 ----------------------------------------------------------------- 26 | 27 | #define THREAD_STACK_SIZE (128 * 1024) // スレッドのスタックサイズ 28 | 29 | #define THREAD_SUSPEND_EVENT_BIT (0x00000001) // 休止状態処理用のイベントのビット 30 | 31 | // 構造体宣言 ----------------------------------------------------------------- 32 | 33 | // データ定義 ----------------------------------------------------------------- 34 | 35 | // 関数宣言 ------------------------------------------------------------------- 36 | 37 | // プログラム ----------------------------------------------------------------- 38 | 39 | // スレッドの処理を初期化する 40 | extern void Thread_Initialize( void ) 41 | { 42 | return ; 43 | } 44 | 45 | // スレッドを実行する関数 46 | static void * ThreadRunFunction( void *pArgBlock ) 47 | { 48 | THREAD_INFO *pInfo = ( THREAD_INFO * )pArgBlock ; 49 | 50 | Thread_Suspend( pInfo ) ; 51 | 52 | // スレッド作成時に渡された関数を実行 53 | pInfo->pFunction( pInfo, pInfo->pParam ) ; 54 | 55 | return NULL ; 56 | } 57 | 58 | // スレッドを作成する 59 | extern int Thread_Create( THREAD_INFO *pThreadInfo, void ( *pFunction )( THREAD_INFO *, void * ), void *pParam ) 60 | { 61 | // 値を初期化 62 | pThreadInfo->Thread_valid = 0 ; 63 | pThreadInfo->Threadattr_valid = 0 ; 64 | pThreadInfo->Cond_valid = 0 ; 65 | pThreadInfo->Mutex_valid = 0 ; 66 | pThreadInfo->Mutexaddr_valid = 0 ; 67 | pThreadInfo->SuspendFlag = FALSE ; 68 | 69 | // パラメータの保存 70 | pThreadInfo->pFunction = pFunction ; 71 | pThreadInfo->pParam = pParam ; 72 | 73 | // ミューテックス属性の初期化 74 | if( pthread_mutexattr_init( &pThreadInfo->Mutexattr ) != 0 ) 75 | { 76 | goto ERR ; 77 | } 78 | pThreadInfo->Mutexaddr_valid = 1 ; 79 | 80 | // 再帰ロック可能にする 81 | if( pthread_mutexattr_settype( &pThreadInfo->Mutexattr, PTHREAD_MUTEX_RECURSIVE ) != 0 ) 82 | { 83 | goto ERR ; 84 | } 85 | 86 | // ミューテックスの作成 87 | if( pthread_mutex_init( &pThreadInfo->Mutex, &pThreadInfo->Mutexattr ) != 0 ) 88 | { 89 | goto ERR ; 90 | } 91 | pThreadInfo->Mutex_valid = 1 ; 92 | 93 | // 条件変数の作成 94 | if( pthread_cond_init( &pThreadInfo->Cond, NULL ) != 0 ) 95 | { 96 | goto ERR ; 97 | } 98 | pThreadInfo->Cond_valid = 1 ; 99 | 100 | // スレッド属性の初期化 101 | if( pthread_attr_init( &pThreadInfo->Threadattr ) != 0 ) 102 | { 103 | goto ERR ; 104 | } 105 | pThreadInfo->Threadattr_valid = 1 ; 106 | 107 | // スレッド属性のセット 108 | // if( pthread_attr_setdetachstate( &pThreadInfo->Threadattr, PTHREAD_CREATE_DETACHED ) != 0 ) 109 | // { 110 | // goto ERR ; 111 | // } 112 | 113 | // スタックサイズのセット 114 | if( pthread_attr_setstacksize( &pThreadInfo->Threadattr, THREAD_STACK_SIZE ) != 0 ) 115 | { 116 | goto ERR ; 117 | } 118 | 119 | // スレッドの作成 120 | if( pthread_create( &pThreadInfo->Thread, &pThreadInfo->Threadattr, ThreadRunFunction, pThreadInfo ) != 0 ) 121 | { 122 | goto ERR ; 123 | } 124 | pThreadInfo->Thread_valid = 1 ; 125 | 126 | // 正常終了 127 | return 0 ; 128 | 129 | ERR : 130 | 131 | if( pThreadInfo->Mutex_valid ) 132 | { 133 | pthread_mutex_destroy( &pThreadInfo->Mutex ) ; 134 | pThreadInfo->Mutex_valid = 0 ; 135 | } 136 | 137 | if( pThreadInfo->Mutexaddr_valid ) 138 | { 139 | pthread_mutexattr_destroy( &pThreadInfo->Mutexattr ) ; 140 | pThreadInfo->Mutexaddr_valid = 0 ; 141 | } 142 | 143 | if( pThreadInfo->Cond_valid ) 144 | { 145 | pthread_cond_destroy( &pThreadInfo->Cond ) ; 146 | pThreadInfo->Cond_valid = 0 ; 147 | } 148 | 149 | if( pThreadInfo->Threadattr_valid ) 150 | { 151 | pthread_attr_destroy( &pThreadInfo->Threadattr ) ; 152 | pThreadInfo->Threadattr_valid = 0 ; 153 | } 154 | 155 | if( pThreadInfo->Thread_valid ) 156 | { 157 | pthread_detach( pThreadInfo->Thread ) ; 158 | pThreadInfo->Thread_valid = 0 ; 159 | } 160 | 161 | // エラー終了 162 | return -1 ; 163 | } 164 | 165 | // スレッドの後始末を行う 166 | extern void Thread_Delete( THREAD_INFO *pThreadInfo ) 167 | { 168 | if( pThreadInfo->Mutex_valid ) 169 | { 170 | pthread_mutex_destroy( &pThreadInfo->Mutex ) ; 171 | pThreadInfo->Mutex_valid = 0 ; 172 | } 173 | 174 | if( pThreadInfo->Mutexaddr_valid ) 175 | { 176 | pthread_mutexattr_destroy( &pThreadInfo->Mutexattr ) ; 177 | pThreadInfo->Mutexaddr_valid = 0 ; 178 | } 179 | 180 | if( pThreadInfo->Cond_valid ) 181 | { 182 | pthread_cond_destroy( &pThreadInfo->Cond ) ; 183 | pThreadInfo->Cond_valid = 0 ; 184 | } 185 | 186 | if( pThreadInfo->Threadattr_valid ) 187 | { 188 | pthread_attr_destroy( &pThreadInfo->Threadattr ) ; 189 | pThreadInfo->Threadattr_valid = 0 ; 190 | } 191 | 192 | if( pThreadInfo->Thread_valid ) 193 | { 194 | pthread_detach( pThreadInfo->Thread ) ; 195 | pThreadInfo->Thread_valid = 0 ; 196 | } 197 | } 198 | 199 | // スレッドが有効かどうかを取得する( 1:有効 0:無効 ) 200 | extern int Thread_IsValid( THREAD_INFO *pThreadInfo ) 201 | { 202 | return pThreadInfo->Thread_valid ; 203 | } 204 | 205 | 206 | // スレッドの実行優先順位を設定する 207 | extern void Thread_SetPriority( THREAD_INFO *pThreadInfo, int Priority /* DX_THREAD_PRIORITY_LOWEST など */ ) 208 | { 209 | sched_param param ; 210 | volatile static int InitPriorityTable = 0 ; 211 | volatile static int PriorityTable[ DX_THREAD_PRIORITY_NUM ] ; 212 | 213 | if( Priority < 0 || Priority >= DX_THREAD_PRIORITY_NUM ) 214 | { 215 | return ; 216 | } 217 | 218 | if( InitPriorityTable == 0 ) 219 | { 220 | int MinPrio ; 221 | int MaxPrio ; 222 | 223 | MaxPrio = sched_get_priority_max( 0 ) ; 224 | MinPrio = sched_get_priority_min( 0 ) ; 225 | 226 | PriorityTable[ DX_THREAD_PRIORITY_LOWEST ] = ( MaxPrio - MinPrio ) * 0 / 3 + MinPrio ; 227 | PriorityTable[ DX_THREAD_PRIORITY_BELOW_NORMAL ] = ( MaxPrio - MinPrio ) * 1 / 3 + MinPrio ; 228 | PriorityTable[ DX_THREAD_PRIORITY_NORMAL ] = ( MaxPrio - MinPrio ) * 2 / 3 + MinPrio ; 229 | PriorityTable[ DX_THREAD_PRIORITY_HIGHEST ] = ( MaxPrio - MinPrio ) * 3 / 3 + MinPrio ; 230 | 231 | InitPriorityTable = 1 ; 232 | } 233 | 234 | param.sched_priority = PriorityTable[ Priority ] ; 235 | pthread_setschedparam( pThreadInfo->Thread, 0, ¶m ) ; 236 | } 237 | 238 | // カレントスレッドのIDを取得する 239 | extern DWORD_PTR Thread_GetCurrentId( void ) 240 | { 241 | return ( DWORD_PTR )pthread_self() ; 242 | } 243 | 244 | // スレッドのIDを取得する 245 | extern DWORD_PTR Thread_GetId( THREAD_INFO *pThreadInfo ) 246 | { 247 | return ( DWORD_PTR )pThreadInfo->Thread ; 248 | } 249 | 250 | // スレッドを休止状態にする 251 | extern void Thread_Suspend( THREAD_INFO *pThreadInfo ) 252 | { 253 | // ミューテックスをロック 254 | pthread_mutex_lock( &pThreadInfo->Mutex ) ; 255 | 256 | // 休止状態のフラグを立てる 257 | pThreadInfo->SuspendFlag = TRUE ; 258 | 259 | // シグナル待ちにする 260 | pthread_cond_wait( &pThreadInfo->Cond, &pThreadInfo->Mutex ) ; 261 | 262 | // ミューテックスをアンロック 263 | pthread_mutex_unlock( &pThreadInfo->Mutex ) ; 264 | } 265 | 266 | // スレッドの休止状態を解除する( 0:休止状態じゃなかった 1:休止状態だった ) 267 | extern int Thread_Resume( THREAD_INFO *pThreadInfo ) 268 | { 269 | // ミューテックスをロック 270 | pthread_mutex_lock( &pThreadInfo->Mutex ) ; 271 | 272 | // 休止状態ではなかったらすぐに抜ける 273 | if( pThreadInfo->SuspendFlag == FALSE ) 274 | { 275 | // ミューテックスをアンロック 276 | pthread_mutex_unlock( &pThreadInfo->Mutex ) ; 277 | 278 | // 休止状態ではなかったの戻り値 279 | return 0 ; 280 | } 281 | 282 | // 休止状態のフラグを倒す 283 | pThreadInfo->SuspendFlag = FALSE ; 284 | 285 | // シグナルを送る 286 | pthread_cond_signal( &pThreadInfo->Cond ) ; 287 | 288 | // ミューテックスをアンロック 289 | pthread_mutex_unlock( &pThreadInfo->Mutex ) ; 290 | 291 | // 休止状態だったの戻り値 292 | return 1 ; 293 | } 294 | 295 | // 指定時間スレッドを停止する 296 | extern void Thread_Sleep( DWORD MiliSecond ) 297 | { 298 | usleep( MiliSecond * 1000 ) ; 299 | } 300 | 301 | 302 | 303 | 304 | 305 | // クリティカルセクションの初期化 306 | extern int CriticalSection_Initialize( DX_CRITICAL_SECTION *pCSection ) 307 | { 308 | // emscripten has no support for thread and critical section 309 | return 0; 310 | 311 | // pCSection->Mutex_valid = 0 ; 312 | // pCSection->Mutexaddr_valid = 0 ; 313 | 314 | // // ミューテックス属性の初期化 315 | // if( pthread_mutexattr_init( &pCSection->Mutexattr ) != 0 ) 316 | // { 317 | // goto ERR ; 318 | // } 319 | // pCSection->Mutexaddr_valid = 1 ; 320 | 321 | // // 再帰ロック可能にする 322 | // if( pthread_mutexattr_settype( &pCSection->Mutexattr, PTHREAD_MUTEX_RECURSIVE ) != 0 ) 323 | // { 324 | // goto ERR ; 325 | // } 326 | 327 | // // ミューテックスの作成 328 | // if( pthread_mutex_init( &pCSection->Mutex, &pCSection->Mutexattr ) != 0 ) 329 | // { 330 | // goto ERR ; 331 | // } 332 | // pCSection->Mutex_valid = 1 ; 333 | 334 | // #if defined( _DEBUG ) 335 | // int i ; 336 | // for( i = 0 ; i < 256 ; i ++ ) 337 | // { 338 | // pCSection->FilePath[ 0 ] = '\0' ; 339 | // } 340 | // #endif 341 | 342 | // return 0 ; 343 | 344 | // ERR : 345 | 346 | // if( pCSection->Mutex_valid ) 347 | // { 348 | // pthread_mutex_destroy( &pCSection->Mutex ) ; 349 | // pCSection->Mutex_valid = 0 ; 350 | // } 351 | 352 | // if( pCSection->Mutexaddr_valid ) 353 | // { 354 | // pthread_mutexattr_destroy( &pCSection->Mutexattr ) ; 355 | // pCSection->Mutexaddr_valid = 0 ; 356 | // } 357 | 358 | // return -1 ; 359 | } 360 | 361 | // クリティカルセクションの削除 362 | extern int CriticalSection_Delete( DX_CRITICAL_SECTION *pCSection ) 363 | { 364 | return 0; 365 | 366 | // if( pCSection->Mutex_valid ) 367 | // { 368 | // pthread_mutex_destroy( &pCSection->Mutex ) ; 369 | // pCSection->Mutex_valid = 0 ; 370 | // } 371 | 372 | // if( pCSection->Mutexaddr_valid ) 373 | // { 374 | // pthread_mutexattr_destroy( &pCSection->Mutexattr ) ; 375 | // pCSection->Mutexaddr_valid = 0 ; 376 | // } 377 | 378 | // return 0 ; 379 | } 380 | 381 | // クリティカルセクションのロックの取得 382 | //#if defined( _DEBUG ) 383 | #if 1 384 | extern int CriticalSection_Lock( DX_CRITICAL_SECTION *pCSection, const char *FilePath, int LineNo ) 385 | #else 386 | extern int CriticalSection_Lock( DX_CRITICAL_SECTION *pCSection ) 387 | #endif 388 | { 389 | #if defined( _DEBUG ) 390 | DWORD_PTR ThreadID = Thread_GetCurrentId() ; 391 | #endif 392 | 393 | // ミューテックスをロック 394 | // pthread_mutex_lock( &pCSection->Mutex ) ; 395 | 396 | #if defined( _DEBUG ) 397 | int Length = ( int )_STRLEN( FilePath ) ; 398 | if( Length >= 512 ) Length = 511 ; 399 | _MEMCPY( pCSection->FilePath, FilePath, ( size_t )Length ) ; 400 | pCSection->FilePath[ Length ] = '\0' ; 401 | pCSection->LineNo = LineNo ; 402 | pCSection->ThreadID = ThreadID ; 403 | #endif 404 | 405 | return 0 ; 406 | } 407 | 408 | // クリティカルセクションのロックを解放する 409 | extern int CriticalSection_Unlock( DX_CRITICAL_SECTION *pCSection ) 410 | { 411 | // ミューテックスを解除 412 | pthread_mutex_unlock( &pCSection->Mutex ) ; 413 | 414 | return 0 ; 415 | } 416 | 417 | 418 | 419 | 420 | #ifndef DX_NON_NAMESPACE 421 | 422 | } 423 | 424 | #endif // DX_NON_NAMESPACE 425 | 426 | -------------------------------------------------------------------------------- /src/HTML5/DxThreadHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用スレッド関係プログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_THREADHTML5_H 10 | #define DX_THREADHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | #include 15 | 16 | #ifndef DX_NON_NAMESPACE 17 | 18 | namespace DxLib 19 | { 20 | 21 | #endif // DX_NON_NAMESPACE 22 | 23 | // マクロ定義 -------------------------------------------------------------------- 24 | 25 | // 構造体定義 -------------------------------------------------------------------- 26 | 27 | // クリティカルセクション 28 | struct DX_CRITICAL_SECTION 29 | { 30 | int Mutex_valid ; // Mutex が有効かどうか 31 | pthread_mutex_t Mutex ; // 休止状態処理用のミューテックス 32 | int Mutexaddr_valid ; // Mutexaddr が有効かどうか 33 | pthread_mutexattr_t Mutexattr ; // 休止状態処理用のミューテックスの属性情報 34 | #if defined( _DEBUG ) 35 | char FilePath[ 512 ] ; 36 | int LineNo ; 37 | DWORD_PTR ThreadID ; 38 | #endif 39 | } ; 40 | 41 | // 一つのスレッドの情報 42 | struct THREAD_INFO 43 | { 44 | void ( *pFunction )( THREAD_INFO *, void * ) ; // 実行する関数 45 | void *pParam ; // 実行する関数に渡すパラメータ 46 | int Thread_valid ; // Thread が有効かどうか 47 | pthread_t Thread ; // スレッド 48 | int Threadattr_valid ; // Threadattr が有効かどうか 49 | pthread_attr_t Threadattr ; // スレッドの属性情報 50 | int Cond_valid ; // Cond が有効かどうか 51 | pthread_cond_t Cond ; // 休止状態処理用の条件変数 52 | int Mutex_valid ; // Mutex が有効かどうか 53 | pthread_mutex_t Mutex ; // 休止状態処理用のミューテックス 54 | int Mutexaddr_valid ; // Mutexaddr が有効かどうか 55 | pthread_mutexattr_t Mutexattr ; // 休止状態処理用のミューテックスの属性情報 56 | int SuspendFlag ; // 休止状態かどうかのフラグ 57 | } ; 58 | 59 | // テーブル----------------------------------------------------------------------- 60 | 61 | // 内部大域変数宣言 -------------------------------------------------------------- 62 | 63 | // 関数プロトタイプ宣言----------------------------------------------------------- 64 | 65 | #ifndef DX_NON_NAMESPACE 66 | 67 | } 68 | 69 | #endif // DX_NON_NAMESPACE 70 | 71 | #endif // DX_THREADHTML5_H 72 | -------------------------------------------------------------------------------- /src/HTML5/DxUseCLibOggHTML5.cpp: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用Ogg関係プログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | //----------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "../DxCompileConfig.h" 13 | 14 | #if !defined( DX_NON_OGGVORBIS ) && !defined( DX_NON_OGGTHEORA ) 15 | 16 | // インクルード---------------------------------------------------------------- 17 | #include "../DxLib.h" 18 | #include "../DxStatic.h" 19 | #include "../DxUseCLib.h" 20 | #include "../DxUseCLibOgg.h" 21 | #include "../DxLog.h" 22 | #include "DxGraphicsHTML5.h" 23 | #include "DxUseCLibOggHTML5.h" 24 | 25 | //namespace DxLib 26 | //{ 27 | 28 | // マクロ定義------------------------------------------------------------------ 29 | 30 | // 型定義---------------------------------------------------------------------- 31 | 32 | // データ宣言------------------------------------------------------------------ 33 | 34 | 35 | // 関数プロトタイプ宣言 ------------------------------------------------------- 36 | 37 | // プログラム------------------------------------------------------------------ 38 | 39 | // 環境依存関数 40 | 41 | #ifndef DX_NON_OGGTHEORA 42 | 43 | // ハードウエア機能が有効な場合は YUV フォーマットの一時保存用テクスチャを作成する 44 | extern int TheoraDecode_CreateSurface_PF( DECODE_THEORA *DT ) 45 | { 46 | return 0 ; 47 | } 48 | 49 | extern void TheoraDecode_ReleaseSurface_PF( DECODE_THEORA *DT ) 50 | { 51 | return ; 52 | } 53 | 54 | // カレントフレームのRGB画像を作成する( 戻り値 1:作成された 0:されなかった ) 55 | extern int TheoraDecode_SetupImage_PF( DECODE_THEORA *DT, volatile THEORA_STOCKFRAME *Stock, int ASyncThread ) 56 | { 57 | return 0 ; 58 | } 59 | 60 | // 一時バッファの YUV フォーマットのテクスチャを得る 61 | extern const void *TheoraDecode_GetYUVImage_PF( DECODE_THEORA *DT ) 62 | { 63 | return 0 ; 64 | } 65 | 66 | // デコードスレッド 67 | void TheoraDecode_Thread( THREAD_INFO *pThreadInfo, void *ASyncLoadThreadData ) 68 | { 69 | DECODE_THEORA *DT = ( DECODE_THEORA * )ASyncLoadThreadData ; 70 | 71 | while( TheoraDecode_Thread_LoopProcess( DT ) != 2 ){} 72 | } 73 | 74 | // Ogg Theora の読み込み処理の準備を行う処理の環境依存処理を行う関数 75 | extern int TheoraDecode_InitializeStream_PF( DECODE_THEORA *DT ) 76 | { 77 | // デコード処理スレッドの作成 78 | DT->ThreadStopRequest = 1 ; 79 | DT->ThreadState = THEORAT_STATE_IDLE ; 80 | DT->ThreadStandbyTime = NS_GetNowCount( FALSE ) ; 81 | if( Thread_Create( &DT->DecodeThreadInfo, TheoraDecode_Thread, DT ) == -1 ) 82 | { 83 | DXST_LOGFILE_ADDA( "Theora \x83\x80\x81\x5b\x83\x72\x81\x5b\x83\x66\x83\x52\x81\x5b\x83\x68\x97\x70\x83\x58\x83\x8c\x83\x62\x83\x68\x82\xcc\x8d\xec\x90\xac\x82\xc9\x8e\xb8\x94\x73\x82\xb5\x82\xdc\x82\xb5\x82\xbd\n"/*@ "Theora ムービーデコード用スレッドの作成に失敗しました\n" @*/ ); 84 | return -1 ; 85 | } 86 | // Thread_SetPriority( &DT->DecodeThreadInfo, DX_THREAD_PRIORITY_NORMAL ) ; 87 | while( Thread_Resume( &DT->DecodeThreadInfo ) != 1 ) 88 | { 89 | Thread_Sleep( 0 ) ; 90 | } 91 | 92 | return 0 ; 93 | } 94 | 95 | #endif // DX_NON_OGGTHEORA 96 | 97 | 98 | //} 99 | 100 | #endif // #if !defined( DX_NON_OGGVORBIS ) || !defined( DX_NON_OGGTHEORA ) 101 | 102 | 103 | -------------------------------------------------------------------------------- /src/HTML5/DxUseCLibOggHTML5.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用Ogg関係ヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_USECLIBOGGHTML5_H 10 | #define DX_USECLIBOGGHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | #include "../DxLib.h" 15 | #include "DxUseCLibOggHTML5.h" 16 | //#include 17 | 18 | #if !defined( DX_NON_OGGVORBIS ) && !defined( DX_NON_OGGTHEORA ) 19 | 20 | //namespace DxLib 21 | //{ 22 | 23 | // マクロ定義 -------------------------------------------------------------------- 24 | 25 | // 構造体定義 -------------------------------------------------------------------- 26 | 27 | // Ogg Theora デコード処理用環境依存データ構造体 28 | struct DECODE_THEORA_PF 29 | { 30 | int Dummy ; 31 | } ; 32 | 33 | // 内部大域変数宣言 -------------------------------------------------------------- 34 | 35 | // 関数プロトタイプ宣言----------------------------------------------------------- 36 | 37 | //} 38 | 39 | #endif // #if !defined( DX_NON_OGGVORBIS ) || !defined( DX_NON_OGGTHEORA ) 40 | 41 | #endif // DX_USECLIBOGGHTML5_H 42 | -------------------------------------------------------------------------------- /src/HTML5/DxWindow.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用システムプログラム 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | // DXライブラリ作成時用定義 10 | #define DX_MAKE 11 | 12 | #include "DxWindow.h" 13 | #include "../DxGraphics.h" 14 | 15 | #include 16 | #include 17 | 18 | #ifndef DX_NON_NAMESPACE 19 | 20 | namespace DxLib 21 | { 22 | 23 | #endif // DX_NON_NAMESPACE 24 | 25 | // プログラム -------------------------------------------------------------------- 26 | 27 | extern int InitializeWindow( void ) { 28 | UpdateMainWindowSize(); 29 | return 0; 30 | } 31 | 32 | extern void UpdateMainWindowSize() { 33 | int WindowSizeX ; 34 | int WindowSizeY ; 35 | 36 | if( GSYS.Screen.Emulation320x240Flag ) 37 | { 38 | WindowSizeX = 640 ; 39 | WindowSizeY = 480 ; 40 | } 41 | else 42 | { 43 | NS_GetDrawScreenSize( &WindowSizeX, &WindowSizeY ) ; 44 | } 45 | 46 | emscripten_set_canvas_element_size("#canvas", WindowSizeX, WindowSizeY); 47 | } 48 | 49 | extern void GetMainWindowSize(int* Width, int* Height) { 50 | emscripten_get_canvas_element_size("#canvas", Width, Height); 51 | } 52 | 53 | #ifndef DX_NON_NAMESPACE 54 | 55 | } 56 | 57 | #endif // DX_NON_NAMESPACE -------------------------------------------------------------------------------- /src/HTML5/DxWindow.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------- 2 | // 3 | // DXライブラリ HTML5用システムプログラムヘッダファイル 4 | // 5 | // Ver 3.24b 6 | // 7 | // ------------------------------------------------------------------------------- 8 | 9 | #ifndef DX_WINDOWHTML5_H 10 | #define DX_WINDOWHTML5_H 11 | 12 | // インクルード ------------------------------------------------------------------ 13 | #include "../DxCompileConfig.h" 14 | 15 | #ifndef DX_NON_NAMESPACE 16 | 17 | namespace DxLib 18 | { 19 | 20 | #endif // DX_NON_NAMESPACE 21 | 22 | // 関数プロトタイプ宣言----------------------------------------------------------- 23 | 24 | // 初期化終了系関数 25 | extern int InitializeWindow( void ) ; // ウインドウ関係の初期化関数 26 | 27 | extern void UpdateMainWindowSize( void ) ; 28 | 29 | extern void GetMainWindowSize( int* Width, int* Height ) ; 30 | 31 | #ifndef DX_NON_NAMESPACE 32 | 33 | } 34 | 35 | #endif // DX_NON_NAMESPACE 36 | 37 | #endif // DX_SYSTEMHTML5_H 38 | -------------------------------------------------------------------------------- /src/DXライブラリソースファイル概用.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nokotan/DxLibForHTML5/273c3254106eacea5b6d8ae4ca2e7101d3da0761/src/DXライブラリソースファイル概用.txt --------------------------------------------------------------------------------