{"id":15817123,"url":"https://github.com/riccardobl/ddswriter","last_synced_at":"2025-05-08T01:09:57.627Z","repository":{"id":83709923,"uuid":"81880113","full_name":"riccardobl/DDSWriter","owner":"riccardobl","description":"DDSWriter is a command-line utility and java library to write compressed and uncompressed DDS.","archived":false,"fork":false,"pushed_at":"2021-04-05T10:45:01.000Z","size":12106,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-08T01:09:40.032Z","etag":null,"topics":["compression","dds","dxt","java","jmonkeyengine","mipmaps","rgtc","s3tc"],"latest_commit_sha":null,"homepage":"https://jmonkeystore.com/431158ae-adc8-421f-bd7d-dd1dc419c612","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riccardobl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-13T22:49:02.000Z","updated_at":"2021-04-05T10:39:49.000Z","dependencies_parsed_at":"2023-03-06T08:15:18.162Z","dependency_job_id":null,"html_url":"https://github.com/riccardobl/DDSWriter","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riccardobl%2FDDSWriter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riccardobl%2FDDSWriter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riccardobl%2FDDSWriter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riccardobl%2FDDSWriter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riccardobl","download_url":"https://codeload.github.com/riccardobl/DDSWriter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252978768,"owners_count":21834916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compression","dds","dxt","java","jmonkeyengine","mipmaps","rgtc","s3tc"],"created_at":"2024-10-05T05:22:23.335Z","updated_at":"2025-05-08T01:09:57.557Z","avatar_url":"https://github.com/riccardobl.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/riccardobl/DDSWriter.svg?branch=master)](https://travis-ci.org/riccardobl/DDSWriter) \n\n\n# DDSWriter\n\nDDSWriter is a command-line utility and java library to write DDS. \nIt supports extensions with the use of delegates and CLI modules.\n\nA delegate is a class to which is delegated the task to write the header and the body of the DDS, a CLI module is an extension for the CLI interface.\n\n\n## The Java library\n#### Requirements\n````gradle\ndef jme_version = \"v3.1\"\ndef jme_group =  \"com.github.jMonkeyEngine.jmonkeyengine\"\n\nrepositories {\n    mavenCentral()\t\n    maven { url 'https://jitpack.io' }\n}\ndependencies {\n\tcompile \"${jme_group}:jme3-core:${jme_version}\"\n\tcompile \"${jme_group}:jme3-desktop:${jme_version}\"\n}\n````\n\n#### Library\n````gradle\ndef version = \"1.0\"\n\nrepositories {\n    maven { url 'https://jitpack.io' }\n}\n\ndependencies {\n    compile \"com.github.riccardobl.DDSWriter:dds_writer:$version\"\n}\n\n````\n\n#### Usage\n```java\ncom.jme3.texture.Texture tx=...; // Texture loaded with jmonkey\nOutputStream fo=...; \n Map\u003cString,String\u003e options=...; // Options for ddswriter and for the delegates\nCollection\u003cDDSDelegate\u003e delegates=...; // List of delegate (needs at least one) \nDDSWriter.write(tx,options,delegates,fo);\n```\n\n#### Options\n```gen-mipmaps``` = ```true```/```false``` - Enable/Disable mipmap generation\n\n```debug``` = ```true```/```false``` - Enable/Disable debug info\n\n```format``` - Output format. (See delegates for available formats) \n\n## The Command line\n```\nUsage: \u003cCMD\u003e --in path/file.png --out path/out.dds [options]\nOptions: \n   --in \u003cFILE\u003e: Input file\n   --out \u003cFILE.dds\u003e: Output file\n   --format: Output format. Default: ARGB8 (uncompressed)\n   --gen-mipmaps: Generate mipmaps\n   --exit: Exit interactive console\n   --debug: Show debug informations\nInput formats:\n   jpg,bmp,png,tga,dds\nOutput formats:\n   ARGB8,RGB8,RGB565\n```\n\nTo use one or more delegates in CLI, they must be added to the classpath. \n--help will be updated to show informations related to the delegate.\n\n\n## Delegates\n\n### Generic (uncompressed)\nDelegate that provides the following uncompressed formats:  *RGB8* *ARGB9* *RGB565*\n\n```ddswriter.delegates.GenericDelegate delegate=new ddswriter.delegates.GenericDelegate();```\n#### Gradle depencency\nNone: included in dds writer\n\n\n### LWJGL2 S3TC (DXT compression)\nDelegate that provides S3tc (DXT) compression, it requires graphical drivers that support such compression and works only in an LWJGL2 context.\n\nThis delegate adds the formats *S3TC_DXT1*,*S3TC_DXT2*,*S3TC_DXT5*.\n\n```java\nddswriter.delegates.lwjgl2_s3tc.S3TC_LWJGL2CompressionDelegate delegate=new ddswriter.delegates.lwjgl2_s3tc.S3TC_LWJGL2CompressionDelegate();\n```\n\n#### Gradle depencency\n```gradle\ncompile 'com.github.riccardobl.DDSWriter:dds_writer__s3tc_lwjgl2_delegate:$version'\n```\n\n\n### LWJGL2 RGTC (ATI compression)\nDelegate that provides RGTC (ATI) compression, it requires graphical drivers that support such compression and works only in an LWJGL2 context.\n\nThis delegate adds the formats *`RGTC1*,*RGTC2*.\n\n```java\nddswriter.delegates.lwjgl2_rgtc.RGTC_LWJGL2CompressionDelegate delegate=new ddswriter.delegates.lwjgl2_rgtc.RGTC_LWJGL2CompressionDelegate();\n```\n#### Gradle depencency\n```gradle\ncompile 'com.github.riccardobl.DDSWriter:dds_writer__rgtc_lwjgl2_delegate:$version'\n```\n\n## Usage examples\n\n#### CLI with s3tc delegator\n```\njava -cp \"dds_writer__cli-fat-1.0.jar:dds_writer__s3tc_ati_lwjgl2_delegate-fat-1.0.jar\"  ddswriter.cli.CLI109 --help\n```\n\n\n## Write a delegate\nTODO\n\n## Write a CLI module\nTODO\n\n[TODO LIST](TODO.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friccardobl%2Fddswriter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friccardobl%2Fddswriter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friccardobl%2Fddswriter/lists"}