Skip to content

Commit 0627b09

Browse files
committed
forbid supper calls from public inline functions
1 parent 2ce726e commit 0627b09

File tree

12 files changed

+82
-36
lines changed

12 files changed

+82
-36
lines changed

build.gradle.kts

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
1-
import kx.*
2-
import org.lwjgl.Lwjgl
3-
import org.lwjgl.Lwjgl.Module.*
1+
import magik.createGithubPublication
2+
import magik.github
3+
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
4+
import org.lwjgl.lwjgl
5+
import org.lwjgl.lwjgl.Module.*
46

57
plugins {
6-
fun kx(vararg p: Pair<String, String>) = p.forEach { id("io.github.kotlin-graphics.${it.first}") version it.second }
7-
kx("align" to "0.0.7",
8-
"base" to "0.0.10",
9-
"publish" to "0.0.6",
10-
"utils" to "0.0.5")
11-
id("org.lwjgl.plugin") version "0.0.20"
8+
kotlin("jvm") version embeddedKotlinVersion
9+
id("org.lwjgl.plugin") version "0.0.29"
10+
id("elect86.magik") version "0.3.1"
11+
`maven-publish`
12+
}
13+
14+
repositories {
15+
mavenCentral()
16+
github("kotlin-graphics/mary")
1217
}
1318

1419
dependencies {
1520

16-
implementation(unsigned, kool, glm)
21+
implementation("kotlin.graphics:glm:0.9.9.1-5")
22+
implementation("kotlin.graphics:unsigned:3.3.31")
23+
implementation("kotlin.graphics:kool:0.9.68")
1724

1825
// https://mvnrepository.com/artifact/com.twelvemonkeys.imageio/imageio-core
1926
listOf(/*"-batik",*/ "-bmp", "-core", "-icns", "-iff", "-jpeg", "-metadata", "-pcx", "-pdf", "-pict", "-pnm",
@@ -23,5 +30,37 @@ dependencies {
2330
// https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-transcoder
2431
//implementation "org.apache.xmlgraphics:batik-transcoder:1.12"
2532

26-
Lwjgl { implementation(jemalloc, opengl) }
27-
}
33+
lwjgl { implementation(jemalloc, opengl) }
34+
35+
testImplementation("io.kotest:kotest-runner-junit5:5.4.1")
36+
testImplementation("io.kotest:kotest-assertions-core:5.4.1")
37+
}
38+
39+
kotlin.jvmToolchain {
40+
this as JavaToolchainSpec
41+
languageVersion.set(JavaLanguageVersion.of(8))
42+
}
43+
44+
tasks {
45+
withType<KotlinCompile<*>>().all {
46+
kotlinOptions {
47+
freeCompilerArgs += listOf("-opt-in=kotlin.RequiresOptIn")
48+
}
49+
}
50+
}
51+
52+
publishing {
53+
publications {
54+
createGithubPublication {
55+
from(components["java"])
56+
suppressAllPomMetadataWarnings()
57+
}
58+
}
59+
repositories {
60+
github {
61+
domain = "kotlin-graphics/mary"
62+
}
63+
}
64+
}
65+
66+
java { withSourcesJar() }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
7-
distributionSha256Sum=de8f52ad49bdc759164f72439a3bf56ddb1589c4cde802d3cec7d6ad0e0ee410
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
7+
distributionSha256Sum=f6b8596b10cce501591e92f229816aa4046424f3b24d771751b06779d58c8ec4

src/main/kotlin/gli_/Texture.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,17 @@ open class Texture {
230230
}
231231

232232
inline fun <reified T> data(layer: Int, face: Int, level: Int): reinterpreter<T> = data(T::class, layer, face, level)
233-
fun <T> data(clazz: KClass<*>, layer: Int, face: Int, level: Int) = getReinterpreter<T>(clazz).apply { data = data(layer, face, level) }
233+
@PublishedApi
234+
internal fun <T> data(clazz: KClass<*>, layer: Int, face: Int, level: Int): reinterpreter<T> = getReinterpreter<T>(clazz).apply { data = data(layer, face, level) }
234235
fun data(layer: Int, face: Int, level: Int): ByteBuffer {
235236
assert((notEmpty()))
236237
assert(layer in 0 until layers() && face in 0 until faces() && level in 0 until levels())
237238
val size = storage!!.levelSize(level)
238239
return memByteBuffer(cache.baseAddress(layer, face, level), size)
239240
}
240-
241+
@PublishedApi
242+
internal
243+
fun a() = 3
241244
fun extent(level: Int = 0): Vec3i {
242245
assert(notEmpty())
243246
assert(level in 0 until levels())
@@ -334,7 +337,6 @@ open class Texture {
334337
}
335338

336339
fun imageOffset(coord: Vec3i, extent: Vec3i) = storage!!.imageOffset(coord, extent)
337-
338340
inline fun <reified T> load(texelCoord: Vec3i, layer: Int, face: Int, level: Int): T = load(T::class, texelCoord, layer, face, level)
339341
fun <T> load(clazz: KClass<*>, texelCoord: Vec3i, layer: Int, face: Int, level: Int): T {
340342
assert(notEmpty() && !format.isCompressed && format.blockSize == getSize(clazz))
@@ -345,17 +347,18 @@ open class Texture {
345347

346348
// fun store(texelCoord: Vec1i, layer: Int, face: Int, level: Int, texel: Any) = store(Vec3i(texelCoord.x, 1, 1), layer, face, level, texel) TODO check
347349
// fun store(texelCoord: Vec2i, layer: Int, face: Int, level: Int, texel: Any) = store(Vec3i(texelCoord.x, texelCoord.y, 1), layer, face, level, texel)
348-
inline fun <reified T> store(texelCoord: Vec3i, layer: Int, face: Int, level: Int, texel: T) {
350+
inline fun <reified T> store(texelCoord: Vec3i, layer: Int, face: Int, level: Int, texel: T) = store(T::class, texelCoord, layer, face, level, texel)
351+
fun <T> store(clazz: KClass<*>, texelCoord: Vec3i, layer: Int, face: Int, level: Int, texel: T) {
349352

350353
assert(notEmpty() && !format.isCompressed)
351354
val extent = extent(level)
352355
assert(glm.all(glm.lessThan(texelCoord, extent)))
353356

354357
val imageOffset = imageOffset(texelCoord, extent)
355358

356-
val blockSize = getSize(T::class)
359+
val blockSize = getSize(clazz)
357360
assert(format.blockSize == blockSize && imageOffset < size(level) / blockSize)
358-
data<T>(layer, face, level)[imageOffset] = texel
361+
data<T>(clazz, layer, face, level)[imageOffset] = texel
359362
}
360363

361364
open fun dispose() = storage?.dispose()

src/main/kotlin/gli_/Texture1d.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package gli_
33
import glm_.glm
44
import glm_.vec1.Vec1i
55
import glm_.vec3.Vec3i
6+
import kotlin.reflect.KClass
67

78
/**
89
* Created by GBarbieri on 04.04.2017.
@@ -79,7 +80,8 @@ class Texture1d : Texture {
7980

8081
fun extent_(level: Int = 0) = Vec1i(super.extent(level))
8182

82-
inline fun <reified T> load(texelCoord: Vec1i, level: Int) = super.load<T>(Vec3i(texelCoord.x, 0, 0), 0, 0, level)
83-
84-
inline fun <reified T> store(texelCoord: Vec1i, level: Int, texel: T) = super.store(Vec3i(texelCoord.x, 0, 0), 0, 0, level, texel)
83+
inline fun <reified T> load(texelCoord: Vec1i, level: Int): T = super.load<T>(Vec3i(texelCoord.x, 0, 0), 0, 0, level)
84+
fun <T> load(clazz: KClass<*>, texelCoord: Vec1i, level: Int): T = super.load(clazz, Vec3i(texelCoord.x, 0, 0), 0, 0, level)
85+
inline fun <reified T> store(texelCoord: Vec1i, level: Int, texel: T) = super.store(T::class, Vec3i(texelCoord.x, 0, 0), 0, 0, level, texel)
86+
fun <T> store(clazz: KClass<*>, texelCoord: Vec1i, level: Int, texel: T) = super.store(clazz, Vec3i(texelCoord.x, 0, 0), 0, 0, level, texel)
8587
}

src/main/kotlin/gli_/Texture1dArray.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ class Texture1dArray : Texture {
7474

7575
fun extent_(level: Int = 0) = Vec1i(super.extent(level))
7676

77-
inline fun <reified T> load(texelCoord: Vec1i, layer: Int, level: Int) =
77+
internal inline fun <reified T> load(texelCoord: Vec1i, layer: Int, level: Int) =
7878
super.load<T>(Vec3i(texelCoord.x, 0, 0), layer, 0, level)
7979

80-
inline fun <reified T> store(texelCoord: Vec1i, layer: Int, level: Int, texel: T) =
80+
internal inline fun <reified T> store(texelCoord: Vec1i, layer: Int, level: Int, texel: T) =
8181
super.store(Vec3i(texelCoord.x, 0, 0), layer, 0, level, texel)
8282
}

src/main/kotlin/gli_/Texture2d.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,6 @@ class Texture2d : Texture {
5959

6060
fun extent_(level: Int = 0) = Vec2i(super.extent(level))
6161

62-
inline fun <reified T> store(texelCoord: Vec2i, level: Int, texel: T) = super.store(Vec3i(texelCoord, 0), 0, 0, level, texel)
63-
inline fun <reified T> load(texelCoord: Vec2i, level: Int) = super.load<T>(Vec3i(texelCoord, 0), 0, 0, level)
62+
internal inline fun <reified T> store(texelCoord: Vec2i, level: Int, texel: T) = super.store(Vec3i(texelCoord, 0), 0, 0, level, texel)
63+
internal inline fun <reified T> load(texelCoord: Vec2i, level: Int) = super.load<T>(Vec3i(texelCoord, 0), 0, 0, level)
6464
}

src/main/kotlin/gli_/Texture2dArray.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ class Texture2dArray : Texture {
5757

5858
fun extent_(level: Int = 0) = Vec2i(super.extent(level))
5959

60-
inline fun <reified T> load(texelCoord: Vec2i, layer: Int, level: Int) =
60+
internal inline fun <reified T> load(texelCoord: Vec2i, layer: Int, level: Int) =
6161
super.load<T>(Vec3i(texelCoord.x, texelCoord.y, 0), layer, 0, level)
6262

63-
inline fun <reified T> store(texelCoord: Vec2i, layer: Int, level: Int, texel: T) =
63+
internal inline fun <reified T> store(texelCoord: Vec2i, layer: Int, level: Int, texel: T) =
6464
super.store(Vec3i(texelCoord.x, texelCoord.y, 0), layer, 0, level, texel)
6565
}

src/main/kotlin/gli_/Texture3d.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class Texture3d : Texture {
4949
return Image(storage!!, format, baseLayer, baseFace, baseLevel + level)
5050
}
5151

52-
inline fun <reified T> load(texelCoord: Vec3i, level: Int) = super.load<T>(texelCoord, 0, 0, level)
52+
internal inline fun <reified T> load(texelCoord: Vec3i, level: Int) = super.load<T>(texelCoord, 0, 0, level)
5353

54-
inline fun <reified T> store(texelCoord: Vec3i, level: Int, texel: T) = super.store(texelCoord, 0, 0, level, texel)
54+
internal inline fun <reified T> store(texelCoord: Vec3i, level: Int, texel: T) = super.store(texelCoord, 0, 0, level, texel)
5555
}

src/main/kotlin/gli_/TextureCube.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ class TextureCube : Texture {
5555

5656
fun extent_(level: Int = 0) = Vec2i(super.extent(level))
5757

58-
inline fun <reified T> load(texelCoord: Vec2i, face: Int, level: Int) =
58+
internal inline fun <reified T> load(texelCoord: Vec2i, face: Int, level: Int) =
5959
super.load<T>(Vec3i(texelCoord, 0), 0, face, level)
6060

61-
inline fun <reified T> store(texelCoord: Vec2i, face: Int, level: Int, texel: T) =
61+
internal inline fun <reified T> store(texelCoord: Vec2i, face: Int, level: Int, texel: T) =
6262
super.store(Vec3i(texelCoord, 0), 0, face, level, texel)
6363
}

src/main/kotlin/gli_/TextureCubeArray.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ class TextureCubeArray : Texture {
5757

5858
fun extent_(level: Int = 0) = Vec2i(super.extent(level))
5959

60-
inline fun <reified T> load(texelCoord: Vec2i, layer: Int, face: Int, level: Int) =
60+
internal inline fun <reified T> load(texelCoord: Vec2i, layer: Int, face: Int, level: Int) =
6161
super.load<T>(Vec3i(texelCoord, 0), layer, face, level)
6262

63-
inline fun <reified T> store(texelCoord: Vec2i, layer: Int, face: Int, level: Int, texel: T) =
63+
internal inline fun <reified T> store(texelCoord: Vec2i, layer: Int, face: Int, level: Int, texel: T) =
6464
super.store(Vec3i(texelCoord,0), layer, face, level, texel)
6565
}

0 commit comments

Comments
 (0)